티스토리 뷰
1. 어노테이션
@RequestMapping ↔ @GetMapping, @PostMapping
- 서로 대체가능한 어노테이션이다. 단지 후자를 사용하면 method를 일일이 get, post로 지정해줘야했던 것을 적지 않아도됩니다. ( 사실 두 개 다 열어보면 @RequestMapping(method = RequestMethod.GET)와 같이 RequestMapping)을 사용함)
@Enumerated(EnumType.STRING)
- JPA로 db에 저장할 때 Enum값을 어떤 형태로 저장할지를 결정합니다. (디폴트는 EnumType.ORIGINAL이지만 중간에 enum값을 추가, 삭제할 경우 문제가 발생하므로 사용하지x)
@EnableWebSecurity
- Spring Security설정들을 활성화시켜줌
2. 스프링 시큐리티
- 권한을 관리할 Enum 클래스를 작성할 때, 스프링 시큐리티에서는 권한 코드에 항상 "ROLE_..."이 앞에 있어야 합니다.
3. 스프링 부트 설정시 packaging에서 war/jar차이
- war : 내장 서버도 사용가능 하지만, 주로 외부 서버에 배포하는 목적으로 사용합니다.
- jar : 항상 내장 서버를 사용하고 webapp 경로도 사용하지 않음
4. 스프링 부트 로깅 (@Slf4j)
- Logging의 단계는 TRACE, DEBUG, INFO, WARN, ERROR 단계로 총 5단계로 구성됩니다.
- application.properties에 로깅 설정을 해두면 원하는 단계부터 로그를 찍어볼 수 있습니다다. (디폴트는 INFO)
- 즉, 개발 서버와 운영 서버의 설정단계를 각각이 다르게 설정하여 서버 상황에 맞게 필요한 정보만 알아볼 수 있습니다.
logging.level.hello.springmvc = debug // #DEBUG 단계부터 로깅이 찍힘
logging.level.hello.springmvc = info // #INFO 단계부터 로깅이 찍힘
로깅할 때, 성능적인 문제
log.trace("trace = " + name); // #1
log.trace("trace = {}", name); // #2
로그 레벨의 설정이 INFO단계라고 할 때 위의 코드를 작성하였다고 가정해보면,
- #1의 경우) '+'로 이어진 문자열 연산이 이루어진 후, 출력해야하지만 TRACE단계가 INFO단계보다 높으므로 연산만 이루어지고 출력은 되지 않습니다.
- #2의 경우) 파라미터로 넘기므로 별도의 연산이 이루어지지않은 상황에서 출력이 되지 않습니다.
- 따라서 모든 로깅의 코드 형식은 #2와 같이 적어야 합니다.
5. Query Parameter와 @PathVariable
· 두 방법 모두 url에 파라미터를 전송하는 방법이지만 Query parameter는 쿼리 스트링을 적용한 방식, @PathVariable은 RESTful하게 이용하는 방식입니다.
- @PathVariable : 말 그대로 경로에 포함된 값( {}안의 값 )를 변수로 사용하며 아래와 같이 두 가지 방식으로 사용할 수 있습니다.
- Query Parameter : 구분자 '?'로 시작하며 key, value쌍이 '&'으로 연결하여 데이터를 제공하는 방식입니다.
// #1. 경로 변수로 받아온 userId를 이름 그대로 사용하지않고, 다른 이름으로 사용하는 방식
@PathVariable("/posts/{userId}")
public String mappingPath1(@PathVariable("userId") String data) {...}
// #2. 경로 변수로 받아온 이름과 내부에서 사용할 변수의 이름을 같도록 사용하는 방식
@PathVariable("/posts/{userId}")
public String mappingPath2(@PathVariable String userId) {...}
// #3. 쿼리 스트링 방식으로 변수를 받아오는 방식
@RequestMapping("/posts", method = ...)
public String mappingPath3(@RequestParam("userId") String userId){...}
// RequestParam 사용시 경로
.../posts/userA
// Query Parameter 사용시 경로
.../posts?userId=userA
'Study > Spring' 카테고리의 다른 글
스프링 정리(4) (0) | 2021.08.21 |
---|---|
스프링 정리(3) (0) | 2021.08.13 |
스프링 정리(1) (0) | 2021.08.03 |
IOC, DI, 컨테이너 (0) | 2021.01.14 |
회원 도메인 개발 (순수 자바코드로) (0) | 2021.01.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BFS
- 프로그래머스
- 카카오 표 편집
- 백준
- 카카오 2021
- 2022 카카오블라인드
- 프로그래머스 위클리 9주차
- 2020 KAKAO BLIND RECRUITMENT
- 시뮬레이션
- 2022 KAKAO BLIND RECRUITMENT
- 카카오 2020 인턴십
- 이분탐색
- 누적합
- 트리
- 2022 카카오 블라인드 코딩테스트
- 2021 KAKAO BLIND
- 카카오 인턴십
- 유니온파인드
- 구현
- 프로그래머스 월간코드챌린지
- 파싱
- Kakaoblind
- 동적계획법
- 게임이론
- 위클리 챌린지
- DP
- 2021 카카오 블라인드
- 카카오 2차코딩테스트
- 투포인터
- 표 편집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함