목록분류 전체보기 (138)
DOing
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6vUgq/btq1EpEKgT8/Pkjivz1P2aHP5mK1KiBfg1/img.png)
전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환한다. 하지만 @Controller에서 View가 아닌 데이터(JSON이나 XML)를 반환시킬 수도 있다. @Controller에서 데이터를 반환시키는 방법에는 @Responsebody와 ResponseEntity가 있다. 1. @ResponseBody : @Controller에서 JSON이나 XML같은 데이터를 반환 @ResponseBody를 사용한 메소드에서 리턴되는 값은 MessageConverter에서 변환되어 HTTP Response Body에 쓰여진다. MessageConverter에는 다양한 종류가 있는데 메소드에서 리턴되는 데이터 타입에 따라 MessageConverter가 결정된다. 1) 반환을 객체로 한..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ca8cr4/btq1JWCgGny/rE2xiYNYknh7T85yKKqEMk/img.png)
Controller은 비지니스 로직을 처리하고 데이터를 가공한다. 이때 비지니스 로직을 처리하기위해 controller에서 데이터를 받는 방법에 대해서 알아보자. 크게 HttpServletRequest, @RequestParam, @RequestBody, @ModelAtrribute, @PathVariable이 있다. 다음 URL로 요청을 보낸다고 가정하자. http://localhost:8080/getInfo?id=3 HttpServletRequest.getParameter() 클라이언트의 요청정보를 확인하게해주는 HttpServletRequest를 이용하기 @GetMapping("/getInfo"); public void getInfo(HttpServletRequest request){ log.inf..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/wIOkB/btq1ztoeAlr/wfsIrTMXYBrhO9QElWfTgk/img.png)
Web Server? 클라이언트의 요청을 받아 정적인 컨텐츠를 응답하는 서버 ex) Apache WAS? 클라이언트 요청을 받아 동적인 컨텐츠를 응답하는 서버 대부분의 WAS는 정적인 컨텐츠를 제공해주기 때문에 WAS는 웹서버를 포함하는 개념이다. WAS는 크게 WebServer와 Web Container로 구성된다. Web Container? Web Server가 정적으로 처리해야할 데이터를 제외한 JSP, 서블릿클래스등을 요청받았다면 이를 웹 컨테이너에서 처리하도록 넘겨준다. 웹 컨테이너에서는 요청받은 서블릿 클래스, JSP 파일을 실행하여 그 결과를 다시 WebServer로 넘겨주고 이는 응답 메시지 형태로 사용자의 브라우저에 전송된다. 웹 컨테이너 안에 JSP 컨테이너, Servlet 컨테이너, ..
org.mybatis.spring.MyBatisSystemException:nested exception is org.apache.ibatis.executor.ExecutorException : No constructor found in xxx MyBatis오류이다. MyBatis가 자동적으로 객체를 생성할때는 디폴트 생성자가 존재해야한다. 디폴트 생성자를 가지고 있지않은 객체를 Mybatis가 생성하려고 할때 생기는 오류이다. 나의 경우에는 association과 collection에 해당하는 객체의 디폴트 생성자를 만들어주지않아서 에러가 발생하였다. 만약 롬복을 사용한다면 간단하게 @NoArgsConstructor만 추가해주면 해결된다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sH1bD/btq1bghErD2/pB5LUZBLTmR3UA9cCUr1RK/img.png)
서로 다른 두 브랜치를 병합시키는 명령어는 두가지가 있다. merge와 rebase. main에 내가 작업한 브랜치를 적용시킬 때는 merge를 주로 사용한다. 하지만 내가 작업한 브랜치에 main을 적용시킬때는 어떻게해야할까? 실제로 나는 프로젝트 작업 중에 내가 작업하던 브랜치에서 변경된 main브랜치의 내용이 필요했다. 그래서 어떻게 하면 좋을까 고민하다가 rebase라는 명령어를 알게되었다. rebase VS merge 가정 1) main브랜치와 sub브랜치가 모두 변경되었다. 가정 2) B5와 A4가 충돌되고 있다 * merge라면? git checkout main git merge sub * rebase라면? git checkout main git rebase sub rebase명령어는 말그대..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vY5Go/btq09ypQkHm/8dQCEdgyDa65G3BaQlrRP1/img.png)
VS Code에서 수정을 다하고 git에 반영하고싶다. GUI를 이용하는 방법과 터미널을 사용하는 방법이 있다. 터미널을 사용하는방법 1. 터미널을 열어준다. 2. git add . 뒤에 . 은 변경사항이 있는 파일 전부를 대상으로 하겠다는 뜻이다. 특정파일만 하고 싶다면 특정파일이름을 쓰면된다. git add . 3. git commit -m "커밋 메시지" git commit -m "markdown" 4. git push git push 원격저장소명 브랜치명 만약 git clone을 통해 저장소를 복제했다면 일반적으로 원격저장소명은 origin이며 git remote명령어를 통해 정확한 저장소명을 알아낼 수 있다. git remote 브랜치를 따로 안만든상태라면 그냥 git remote origin만..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Tz7xc/btq090TTmsd/Ah70rEezwxdm9XhNDErSq1/img.png)
VS Code에서 git과 연동시켜보겠다. 1. git clone검색 F1> git clone 검색 2. 자신의 github계정과 연동시킨다. 3. 리포지토리 선택 들어가니 이런식으로 내 깃헙계정의 리포지토리들이 뜬다. 이렇게 말고도 직접 원하는 리포지토리의 git 주소를 직접 입력해도된다. git주소는 해당 리포지토리에 들어가서 code를 누르면 뜬다. 4. localPC에 저장될 위치선택하기 나는 git이라는 폴더 아래에 저장하기로했다. select repository location클릭. 5. clone완료 하단에 이런 알림이 뜨면 무사히 clone한것이다! clone한 리포지토리를 열어보겠냐고 해서 열어볼라면 open을 누르면된다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b4jgh7/btq1dztK8mr/SgLLmSDAhlaShrMQL20gtK/img.png)
* TIL? Today I Learned의 약자. 그날그날 내가 공부한 것을 정리하는 것이다. 미국에서는 흔하게 사용되는 용어인데 아직 한국에서는 많이 사용되지않고 개발자들 사이에서만 사용되고 있다고 한다. * TIL 참고 예시 1. 진유림님 TIL : milooy.github.io/TIL/ (프론트개발자분) 2. 김남윤님 TIL : github.com/cheese10yun/TIL 3. 초보몽키님 TIL : https://wayhome25.github.io/ 진유림님d이나 초보몽키님 처럼 꼭 github의 형태로 할 필요는 없다. 하지만 나는 github이 일단 편하게 느껴졌고 위키피디아처럼 이루어져 한눈에 잘 들어온다는 점이 좋았다. 또한 면접에서 나중에 잘 어필할 수 있을 것이란 생각이 들어서 git..