Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 문제풀이
- 메모리 관리
- 리눅스
- 프로세스 할당
- Page Table의 구현
- 웹 프로그래밍
- Shared Page
- 자바 알고리즘
- springboot
- spring
- 알고리즘
- linux
- 자바 문제풀이
- 프로세스 불연속 할당
- Allocation of Physical Memory
- jpa
- 스프링
- 운영체제
- 스프링부트
- CS
- 2단계 Page Table
- annotation
- 코드스테이츠 백엔드 과정 39기
- Inverted Page Table
- Effective Access Time
- 메모리의 불연속적 할당
- 다단계 페이지 테이블
- Segmentation with Paging
- 프로세스 동기화
- 웹개발
Archives
- Today
- Total
GrowMe
SpringBoot 주요 애너테이션과 메서드 및 주의사항(지속 업데이트 중) 본문
@Annotation과 그 관련 메서드
# SpringBoot
# Test
- @SpringBootApplication : 라이브러리의 자동 설정 및 Bean 읽기와 생성을 자동으로 시켜준다. 항상 프로젝트의 최상단에 위치해야 그 하위 패키지의 파일 설정을 도와줄 수 있다. 또한 내부 run 메서드로 내장 WAS를 실행한다.
- @RestController : 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어준다. @Controller + @ResponseBody
-) view가 아닌 객체를 리턴한다. - @ExtendWith : 테스트 진행 시, JUnit 내장 실행자 외, 다른 실행자를 실행시키며, 스프링부트 테스트와 JUnit의 연결자 역할을 한다.
- @WebMvcTest : 웹에서의 요청과 응답을 전체 애플리케이션 실행이 아닌, Controller만을 로드하여 테스트
- MockMvc : 웹 API 테스트 시 사용하며, HTTP GET, POST 등에 대한 API 테스트 가능
- perform() : MockMvc가 제공하는 메서드로, 브라우저에서 서버에 URL 요청을 하듯 컨트롤러를 실행
-> ResultActions 객체를 리턴 - andExpect() : ResultActions 객체의 하위 메서드로 서버의 응답 결과를 검증한다.. MockMvcResultMatchers 객체에 정의된 정적 메서드를 인자로 받음. MockMvcResultMatcher 객체는 컨트롤러가 어떤 결과를 전송했는지를 나타낸다.
- MockMvcResultMatcher가 제공하는 메서드
- 응답상태 코드 : isOk(), isNotFount(), is(int status) 등
- 뷰/리다이렉트 검증 : view().name("user"), redirectedUrl("/user") 등
- 모델 정보 검증 : model().attributeExists(String name) 등
- @Autowired : 스프링이 관리하는 Bean을 주입 받는다.
- @Getter : 선언된 모든 필드의 get 메소드 생성
- @RequiredArgsConstructor : final 필드가 포함된 필드의 생성자를 생성
- @NoArgsConstructor : 기본 생성자 자동 추가
- assertThat() : 검증하고 싶은 대상을 인자로 받는다. 메서드 체이닝 지원으로, isEqualTo와 이어서 사용 가능하다.
- isEqualTo() : assertThat에 있는 값 == isEqualTo의 값일 때 성공
- @RequestParam : 외부에서 API로 넘긴 파라미터를 가져온다.
- param() : API 테스트 시, 사용될 요청 파라미터를 설정. String 값만 허용. - @RequestBody : HTTP 요청의 바디 내용(JSON)을 자바 객체로 변환해서 매핑된 메소드 파라미터로 전달.
- @ResponseBody : 자바 객체를 HTTP 요청의 바디(JSON)으로 변환하여 클라이언트로 전송.
- jsonPath() : JSON 응답값을 필드별로 검증 가능한 메서드. $를 기준으로 필드명을 명시.
- @Entity : 테이블과 링크될 클래스. 기본값 : (ex : SalesManager.java -> sales_manager table
- @ID : 해당 테이블의 PK 필드임을 명시
- @GeneratedValue : PK의 생성 규칙을 나타냄
- @Column : 테이블의 칼럼을 나타냄. @Entity가 붙은 클래스의 필드는 모두 칼럼이 된다(생략가능).
-> 사용하는 이유는 주로, 기본값 이외 추가로 변경 필요할 시 사용. - @Builder : 해당 클래스의 빌더 패턴 클래스 생성. 생성자 상단에 선언 시, 생성자에 포함된 빌더에 포함.
- builder() : @Builder 붙은 클래스의 객체(선택자)를 생성. (ex : Example.builder().a(a).b(b).build(); - @AfterEach : 단위 테스트가 끝날 때마다 수행되는 메서드 지정
- @SpringBootTest : 실제 애플리케이션을 자신의 로컬에 올려 포트 주소가 Listening되고,
실제 Database와 연결되는 Live 테스트. 내부의 webEnvironment 속성을 사용해 테스트를 자세히 정의 가능. - @LocalServerPort : 실제 실행되는 포트번호를 해당 필드에 주입.
- @PathVariable : 요청 URL의 구분자로 파라미터에 해당하는 변수를 지정해줄 때 사용.
- @Transactional : 해당 메서드를 하나의 트랜잭션으로 구분해준다. 메서드 바디에 커밋과 롤백을 자동 추가해준다.
- @EntityListeners : 해당 클래스(BaseTimeEntity)에 event 전과 후에 대한 콜백을 처리하고 코드를 실행하는 방법
- @MappedSuperclass : 어떤 클래스(Entity)가 해당 BaseTimeEntity을 상속하면, createdDate, modifiedDate 필드 또한 칼럼으로 인식하도록 함.
- @CreatedDate : Entity가 생성되어 저장될 때, 시간이 자동 저장된다.
- @LastModifiedDate : 조회한 Entity의 값을 변경할 때 시간이 자동 저장된다.
- @EnableJpaAuditing : JPA Auditing(조회, 변경 등 이벤트 등이 일어나는지 체크)을 활성화.
SpringBoot 주의사항 및 알아야할 사항들
*SpringBoot는 내장 WAS 사용을 권장한다. (언제 어디서나 같은 환경에서 스프링부트 배포가 가능하기 때문)
*Spring에서는 Bean을 주입받는 방식 중, 생성자로 주입받는 방식을 권장한다.
-에러를 컴파일 단에서 잡을 수 있고, 주입을 한번에 받을 수 있어 편리하기 때문.
*Entity 클래스를 Request/Response 클래스로 사용해서는 안된다.
*단위테스트의 장점
1. 빠른피드백이 가능하며, 수동검증이 필요 없어진다.
2. 기능에 대한 불확실성을 줄일 수 있다.
3. 개발 단계 초기에 문제 발견하도록 도와준다.
4. 단위 테스트 자체가 시스템에 대한 실제 문서로 제공될 수 있다.
5. 기능 추가, 코드 리팩토링 및 라이브러리 업그레이드 시, 기존 기능이 잘 작동하는지 확인 가능하다.
'About Spring' 카테고리의 다른 글
[Spring] DTO의 개념과 그 활용 방법 (0) | 2022.06.27 |
---|---|
[Spring]DI를 코드 + a로 쉽게 이해해보자 (0) | 2022.06.27 |
[Spring]AOP를 코드 + a 로 쉽게 이해해보자 (0) | 2022.06.21 |
[Spring 설정]Mybatis와 SqlSessionTemplate (2) | 2022.06.12 |
Spring FrameWork와 MVC 패턴 (0) | 2022.06.05 |
Comments