전체 글 234

@RestController vs @Controller

@RestController @Controller 는 반환 값이 String 이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 랜더링 된다. @RestController 는 반환 값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력한다. Controller 대신에 @RestController 애노테이션을 사용하면, 해당 컨트롤러에 모두 @ResponseBody 가 적용되는 효과가 있다. 뷰 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력한다. 이름 그대로 Rest API(HTTP API)를 만들 때 사용하는 컨트롤러이다. 참고로 @ResponseBody 는 클래스 레벨에 두면 전체에 메서드에 적용되는데, @RestController 에노테이션 안에 @Respons..

백엔드/스프링 2022.01.11

TIL 2022-01-10 스프링 프로젝트

[한 일] UMC 동아리에서 스프링, 안드로이드, 디자이너 개발자분들이 모여서 앱 개발 프로젝트를 진행한다. 스프링 개발자 분과 함께 프로젝트 계획, 커밋 규칙, 역할 분담을 나누었다. 내가 맡은 일은 POST(게시글) 부분인데, 컨트롤러, Dto, Repository, Service 부분을 직접 구현해보았다. 직접 구현해보면서 Dto, Controller, Service 간의 계층 구조를 좀 이해하게 되었다. [느낀 점] 하면 할수록 는다는게 사실인 것 같다. 매일 1일 1커밋해서 앱 개발 프로젝트를 성공적으로 끝마쳐야겠다.

etc/TIL 2022.01.11

HTTP 요청 파라미터 - @RequestParam

스프링이 제공하는 @RequestParam 을 사용하면 요청 파라미터를 편리하게 사용 할 수 있다. public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") int memberAge)) @RequestParam : 파라미터 이름으로 바인딩 @RequestParam의 name(value) 속성이 파라미터 이름으로 사용 public String requestParamV3( @RequestParam String username, @RequestParam int age) HTTP 파라미터 이름이 변수 이름과 같으면 @RequestParam(name="xx") 생략 가능 public String re..

백엔드/스프링 2022.01.10

TIL 2022-01-09 / 스프링

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 오늘은 스프링 MVC 1편을 완강하였다. 진도율 64강/72강(88.88%) 부분은 강의 끝 편의 정리 부분을 제외한 부분이다. 강의 후반부에 프로젝트(상품 목록 조회, 수정, 추가 홈페이지)를 직접 구현해보았다. 프로젝트 파일은 깃허브에 커밋하여 올려놓았다. [느낀점] 스프링 MVC 1편을 완강하고, 직접 프로젝트를 구현해보면서 스프링에 대한 지식이 차근차근 올라가는 느낌이 들었다. 이 강의에서 리팩토링을 대단히 중요시하는데, 어떻게 더 사용자와 개발자의 입장에서 더 편리하게 코드를 짤 수 있는지를 상세히 알려주셔서 명령어의 쓰임을 더 자세히 알 수 있었다. 다음 강의로는 MVC 2편을 구매하여, 스프링에 대한 지식을 더욱더 확장할 예정이다. 가능하..

etc/TIL 2022.01.10

백준 1182번 부분수열의 합 - C++

[문제] https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net [풀이] 백트래킹 문제이다. [코드] #include using namespace std; int n,s; int arr[30]; int cnt; void func(int cur, int tot){ if(cur == n) { if(tot == s) cnt++; return; } func(cur+1, tot); func(cur+1, tot+arr[cur]..

알고리즘/풀이 2022.01.09