일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- transaction
- spring
- JPQL
- springdatajpa
- Thymeleaf
- 스프링 핵심 기능
- 인프런
- QueryDSL
- JDBC
- Greedy
- Proxy
- 스프링 핵심 원리
- Exception
- pointcut
- 백준
- Android
- java
- AOP
- jpa
- http
- 알고리즘
- db
- SpringBoot
- 스프링
- 김영한
- kotlin
- 자바
- Spring Boot
- 그리디
- Servlet
- Today
- Total
목록kotlin (21)
개발자되기 프로젝트
1. Retrofit Retrofit은 HTTP API 통신을 돕는 라이브러리로 쉽고 사용이 간단하다. 2. 의존성 추가 // Retrofit implementation "com.squareup.retrofit2:retrofit:2.9.0" // Retrofit with Moshi Converter implementation "com.squareup.retrofit2:converter-scalars:2.9.0" // GSON implementation 'com.squareup.retrofit2:converter-gson:2.9.0' Gradle에 의존성을 추가. 보통 서버에 JSON을 통해 요청하거나 서버로부터 응답을 받는다. 이 떄 Gson라이브러리를 사용하면 Json Object Kotlin Clas..
1. Fragment? Fragment는 FragmentActivity내의 어떤 동작 또는 사용자 인터페이스의 일부를 나타냄. 한마디로 Fragment는 activity의 모듈식 섹션. 프래그먼트는 항상 액티비티 내에서 호스팅되어야 하며 해당 프래그먼트의 수명 주기는 호스트 액티비티의 수명 주기에 직접적으로 영향을 받는다. 자세한 내용은 아래 공식문서 참고. 프래그먼트 | Android 개발자 | Android Developers A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pa..
Retrofit사용 시 요청이 계속 fail이 나서 검색하던 중 Json to Kotlin class 라는 plugin을 알게되었다. 응답 받을 또는 응답을 줄 json samle을 입력하면 이에 맞춰 클래스를 생성하는 기능을 제공한다... setting -> plugin에서 json이라고 검색하면 가장 먼저 확인할 수 있다. 설치가 되었다면 클래스 생성 시 아래와 같이 확인이 가능하다. 생성할 때 이제 josn sample을 넣어주면 클래스를 생성해준다. 일부러 복잡한 sample을 사용했다. 생성 결과
1. @WebMvcTest, @AutoConfigureMockMvc MVC를 test하기 위해서는 모든 SpringBoot를 불러올 필요가 없음. @WebMvcTest @AutoConfigureMockMvc internal class ExceptionApiControllerTest { } 2. MockMvc @Autowired lateinit var mockMvc: MockMvc 3. Test1 @Test fun helloTest(){ mockMvc.perform( MockMvcRequestBuilders.get("/api/exception/hello") ).andExpect( MockMvcResultMatchers.status().isOk ).andExpect( MockMvcResultMatchers...
1. ErrorResponse 다음과 같이 Error발생시 Response를 내려준다고 해보자. data class ErrorResponse( @field:JsonProperty("result_code") var resultCode: String?=null, @field:JsonProperty("http_status") var httpStatus: String?=null, @field:JsonProperty("http_method") var httpMethod : String?= null, var message: String?=null, var path: String?=null, var timestamp: LocalDateTime?= null, var errors: MutableList? = mutabl..
[API예외] @ControllerAdvice @ExceptionHandler 를 사용해서 예외를 깔끔하게 처리할 수 있게 되었지만, 정상 코드와 예외 처리 코드가 하나의 컨트롤러에 섞여 있다. @ControllerAdvice 또는 @RestControllerAdvice 를 사용하면.. bsh-developer.tistory.com @ControllerAdvice는 Controller에서 발생하는 Exception을 어떻게 처리할지 따로 분류해서 관리할 수 있도록 도와줌. 말 그대로 Controller에 대한 Advice이다. 아래와 같이 IndexOutOfBounds Exception이 무조건 발생하는 Controller가 있다고 해보자. @RestController @RequestMapping("/a..
앞선 글과 같이 생성일자의 경우 여기저기서 많이 사용한다. 매 번 만들어서 적용하기는 너무 불편하다. custom annotaion을 만들어서 적용을 해보자. 1. annotaion import com.example.kotlinspring.validator.StringFormatDateTimeValidator import javax.validation.Constraint import javax.validation.Payload import kotlin.reflect.KClass @Constraint(validatedBy = [StringFormatDateTimeValidator::class]) //어떤 validator? @Target( //적용할 대상 AnnotationTarget.FIELD, Anno..
1. 의존성 추가 implementation("org.springframework.boot:spring-boot-starter-validation") 2. 파라미터에 적용 Bean Validator를 파라미터에 사용하기 위해서는 class에 @Validated를 적용해야 한다. @RestController @RequestMapping("/api") @Validated //얘를 적용해야 하위에 있는 validation Annotation이 동작함. class DeleteApiController { // 1. path variable // 2. request param @DeleteMapping("/delete-mapping") fun deleteMapping( @RequestParam(value = "na..