일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인터페이스
- 마크다운 테이블
- 리스트
- 트리
- 클래스
- CleanCode
- 클린
- code
- @ComponentScan
- @RequiredArgsConstructor
- java
- 스택 큐 차이
- 배열
- 연결 리스트
- 쿼리메소드
- query
- 자료구조
- WebClient
- 쿠키
- 코드
- 내부 정렬
- 선형 리스트
- 계산 검색 방식
- JsonNode
- 마크다운
- mysql
- 빅 오 표기법
- 클린코드
- 정렬
- @NoArgsConstructor
- Today
- Total
목록Spring (32)
Developer Cafe
@RequiredArgsConstructor public class HelloResponseDto { private final String name; private final int amount; } ● 선언된 모든 final 필드가 포함된 생성자를 생성해 줍니다. ● final이 없는 필드는 생성자에 포함되지 않습니다.
@Autowired private MockMvc mvc; 웹 API를 테스트할 때 사용합니다. 스프링 MVC 테스트의 시작점입니다. 이 클래스를 통해 HTTP GET, POST 등에 대한 API테스트를 할 수 있습니다. @Test public void hello가_리턴된다() throws Exception { String hello = "hello"; mvc.perform(get("/hello")) .andExpect(status().isOk()) .andExpect(content().string(hello)); } mvc.perform(get("/hello")) MockMvc를 통해 /hello 주소로 HTTP GET 요청을 합니다. 체이닝이 지원되어 아래와 같이 여러 검증 기능을 이어서 선언할 수 있..
여러 스프링 테스트 어노테이션 중, Web에 집중할 수 있는 어노테이션입니다. 선언할 경우 @Controller, @ControllerAdvice 등을 사용할 수 있습니다. 단, @Service, @Component, @Repository 등은 사용할 수 없습니다.
테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자를 실행 시킵니다. SpringRunner라는 스프링 실행자를 사용합니다. 즉, 스프링 부트 테스트와 JUnit 사이에 연결자 역할을 합니다.
테스트 주도 개발(Test-driven development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 항상 실패하는 테스트를 먼저 작성하고(RED) 테스트가 통과하는 프로덕션 코드를 작성하고(GREEN) 테스트가 통과하면 프로덕션 코드를 리팩토링합니다.(BLUE) 단위테스트 모르는 개발자 1. 코드작성 2. 실행(Tomcat) 3. Postman 등으로 API 테스트 도구로 HTTP 요청 4. 요청결과를 log나 System.out.println() 으로 검정 5. Tomcat내리고 코드 수정 다시 실행 반복 TDD 기능 중 하나인 단위테스트의 이점 ■ 개발초기에 문제를 발견하게 도와준다. ■ 개발자가 나중에 코드를 리펙토링하거나 라이브러리 업그레이드 등에서 ..
1. #{} 를 사용하면 SELECT name AS name FROM user_#{tableId} WHERE id = #{id} 변수에 작은 따옴표(‘)가 자동으로 붙여 쿼리가 수행되기 때문에 '#{id}'와 같은 식으로 쿼리문을 작성하지 않아도 된다. 이러한 특성으로 테이블 설계가 user_1, user_2과 같이 분리되어 구성되어 있을 때, 위와 같은 식으로는 작성할 수 없다. 위 쿼리문이 수행되면 tableId 변수 양쪽에 따옴표가 붙기 때문에 SQLSyntaxErrorException 오류가 발생한다. 2. ${} 를 사용하면 값이 넣어진 채로 쿼리문이 수행된다. 그렇기 때문에 파라미터의 값이 바뀔 때마다 항상 쿼리문 파싱을 진행해야 한다. 즉, 성능상의 단점이 존재한다. 그리고 쿼리문에 #{}을..
@SpringBootApplication으로 인해 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성은 모두 자동으로 설정됩니다. 특히 @SpringBootApplication이 있는 위치부터 설정을 읽어가기 때문에 항상 프로젝트 최상단에 위치해야만 합니다. main메소드의 SpringApplication.run 으로 인해 내장 WAS를 실행합니다. 내장 WAS를 사용하게 되면 톰캣을 설치할 필요가 없게 되고, 스프링 부트로 만들어진 Jar 파일을 실행하면 됩니다. @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, a..
@Autowired Spring Framework에서 지원하는 Dependency정의 용도의 Annotaion으로, Spring Frameword에 종속적이긴 하지만 정밀한 Dependecy Injection이 필요한 경우에 유용하다. 맴버변수, setter 메소드, 생성자, 일반 메소드에 적용가능 @Resource 특정 Bean이 JNDI리소스에 대한 Injection을 필요로 하는 경우에는 @Resource를 사용할 것을 권장한다. 맴버변수, setter 메소드에 적용가능 @Inject 특정 Framework에 종속되지 않는 어플리케이션을 구성하기 위해서는 @Inject를 사용할 것을 권장한다. @Inject를 사용하기 위해서는 클래스 패스 내에 JSR-330라이브러리인 javax.iinject-x...
@GetMapping HTTP Get 요청을 처리하고 데이터 만 사용할때는 @GetMapping을 쓴다. Header에 정보를 담아 보내므로 용량에 한계가 있어 정보를 호출할때 주로 사용된다. @PostMapping 추가 작업을 수행하려면 @PostMapping을 사용한다. HttpBody에 정보를 담아 보내므로 Get방식보다 안전하여 새로운 정보를 등록할때 주로 사용된다. @PutMapping 그리고 @PatchMapping 업데이트 작업을 수행하려면 @PutMapping 혹은 @PatchMapping을 사용한다. @DeleteMapping 삭제 작업을 수행하려면 @DeleteMapping을 사용한다.
@Controller는 주로 View를 반환하기 위해 사용합니다. @Controller는 문서를 반환하지만 @RestController는 @ResponseBody을 따로 정의하지 않아도 @ResponseBody와 같은 효과를 주어 자바 객체를 HTTP 응답 몸체로 변환 할 수 있게 해준다. RestController의 주용도는 Json, xml 형태로 객체 데이터를 반환하는 것입니다. @RestController @RequestMapping("/api/notice/") { @RequsetMapping("list") public String list() { return "공지사항 list"; } }