본문 바로가기

Back-End35

[ Spring boot ] Spring boot 프레임워크 ② Thymeleaf 문법 적용시 기본 텍스트 값이 있는 경우와 없는 경우의 차이 1. th:text 태그 안의 값을 셋팅할 때 태그 안에 값을 넣어두는 이유 package com.example.capstone.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class LoginController { @GetMapping("/userInfo/userdata") public String checkuserInfo(Model model){ model.. 2022. 4. 30.
[ Spring boot ] Spring boot 프레임워크 ① [ Spring boot ] 개발환경 구축하기 * 서버 충돌 방지를 위해 server port 번호 바꿔주기 → src/main/resources/application.properties 에서 server.port=8024 입력 후 저장 스프링 부트 static 폴더 프로젝트를 생성 후 localhost:8024로 접속하면 에러가 난다. → 진입점이 없어서 에러가 발생한다. 따라서 진입점을 만들어주면 에러가 나지 않음 진입점은 html 파일같이 직접 파일을 만들어주는 것도 가능하고, controller를 통해서 진입점을 찾아들어갈 수 있도록 만드는 것이 가능하다. src/main/resources 에 index.html 파일을 생성 후 localhost:8024/index.html로 접속이 가능하다. -.. 2022. 4. 13.
[ NodeJS ] API * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ API ] API ( application programming interface ) : 어플리케이션을 프로그래밍 하기 위해서 제공되는 인터페이스 * 인터페이스 : 개발자들과 사용자들의 약속된 조작 장치 웹 어플리케이션은 NodeJS가 가지고 있는 기능들을 호출함으로써 동작하게 된다. 즉 인터페이스를 실행시킴으로써 어플리케이션을 만들 수 있게 된다. 1. http.createServer([requestListener]) : 웹 서버를 생성 * requestListener는 함수이다. * http는 웹 브라우저와 웹 서버가 서로 통신할 대 사용하는 통신 규칙 → http는 모듈이면서 객체이기도함 외부에서 요청이 들어올 때마다 웹 서버는 첫번째 인자에.. 2021. 8. 12.
[ NodeJS - APP ] 모듈을 활용 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. var template = { //module.exports = { 도 가능 HTML: function(title,list,body, control){ return ` WEB ${list} ${control} ${body} ` }, list: function(filelist){ var list = ''; var i = 0; while( i var template = require.. 2021. 8. 12.
[ NodeJS ] 모듈 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. 모듈 : 많은 객체, 함수 등을 정리할 수 있는 더 큰 틀의 도구 모듈을 이용하면 더 많은 객체, 함수 등을 파일로 쪼개서 외부로 독립시킬 수 있다. var M = { v: 'V', f: functon(){ console.log(this.v) } } module.exports = M; 모듈이 담겨져 있는 파일에 있는 여러 기능들 중에서 M이 가리키는 객체를 해당 모듈 바깥에서 사용할 수 있도록 exports 하겠다. var part = require('./mpart.js'); console.log(part); //모듈을 로딩한 결과를 part에 담았음 //part에는 객체가 들어있음 { v: 'V', f: [Function: f] } //객체에는 mo.. 2021. 8. 12.
[ NodeJS - APP ] 기능 Refactoring * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ template 기능 정리 정돈하기 ] 객체 : 서로 연관된 데이터와 그 데이터를 처리하는 방법인 함수를 그룹핑하여 코드의 복잡성을 낮추는 수납 상자 refactoring : 동작 방법은 똑같이 유지하면서 내부의 코드를 더 효율적으로 바꾸는 행위 var template = { HTML: function(title,list,body, control){ return ` WEB ${list} ${control} ${body} ` }, list: function(filelist){ var list = ''; var i = 0; while( i < filelist.length ){ list = list + `${filelist[i]}` i += 1 } li.. 2021. 8. 12.
[ NodeJS - APP ] 글 삭제 기능 완성 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. 삭제하는 메소드 : fs.unlink(path, callback) → 삭제할 path를 적어주고 callback 함수를 실행한다. else if (pathname === '/delete_process') { var body =''; request.on('data',function(data){ body = body + data }); request.on('end', function(){ var post = qs.parse(body); var id = post.id //id부분만 전송이 되므로 title과 description 변수 필요 없음 fs.unlink(`data/${id}`, function(error){ response.writeHead(302.. 2021. 8. 12.
[ NodeJS - APP ] 글 삭제 버튼 구현 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. delete를 클릭했을 때 해당 글과 데이터 디렉토리의 제목이 같은 파일이 삭제되면 된다. //변경 전 fs.readdir('./data', function(error, filelist) { fs.readFile(`data/${queryData.id}`, 'utf8', function(err,description){ var list = templateList(filelist); var title = queryData.id var template = templateHTML(title,list, `${title} ${description}`, `create update`); response.writeHead(.. 2021. 8. 12.
[ NodeJS - APP ] 수정된 내용 저장 * 해당 포스터는 생활코딩 강의를 정리한 내용입니다. [ update_process 쪽으로 데이터를 전송했기 때문에 전송한 데이터를 받아서 처리하는 방법 ] update_process에서도 post방식으로 들어온 데이터를 받아야함 var body =''; request.on('data',function(data){ body = body + data }); request.on('end', function(){ var post = qs.parse(body); var title = post.title; var description = post.description; fs.writeFile(`data/${title}`, description, 'utf8', funct.. 2021. 8. 12.