[Spring] 카카오 로그인 API 사용 방법
·
Spring
Kakao Developers이미지 설명에 각 이미지 내용에 대한 위치(경로) 적어뒀으니 참고해 주세요. 1. KakaoDevelopers 접속https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 2. 애플리케이션 추가하기 3. 애플리케이션 추가 4.Rest API 키 확인 5. Web 플랫폼 등록 6. 사이트 도메인 설정 7. 카카오 로그인 활성화, Redirect URI 등록 8. 동의 항목 설정사용하려는 개인 정보 동의 설정 ( email, nickname 정보 ) 9. (추가) 카카오 로그인 버..
[JUnit] 테스트 코드 작성과 단위테스트 Unit Test
·
Spring
JUnitJava용 유닛 테스트 프레임워크이다.소프트웨어 개발 시에 단위테스트(Unit Testing)는 중요한 절차이다.프로그램을 작은 unit 단위로 쪼개어 각각 잘 동작하는지 검사함으로써 프로그램의 안정성을 높인다.1) 테스트 주도 개발 (TDD)테스트 주도 개발(Test-Driven Development)란, 테스트 케이스를 작성하고 소스코드가 이를 통과하는지 반복하여 확인하며 개발하는 것을 말한다. TDD는 기능의 구현 목표에 집중하여 개발 생산성을 높이고, 이후 리팩토링과 유지보수에 이점을 가져다준다.테스트코드를 처음 접했을 때, 사소하고 틀일일이 없다고 생각하는 부분까지 테스트를 하는 것을 보고 놀랐다.2) 단위 테스트(Unit Testing)각 작은 단위가 구현 목표에 맞게 잘 동작하는지 ..
[Spring Boot] @RequestMapping 매핑
·
Spring
@RequestMapping 메서드 위에 @RequestMapping("/url") 이 붙으면 /url이 호출 됐을 때 해당 메서드를 실행하도록 매핑한다. 해당 클래스가 @Controller로 지정되어 있다면 , 메서드가 String을 반환했을 때 반환 값은 view 이름으로 인식된다. @RestController로 지정되어 있다면, Rest API요청에 대한 응답 (JSON)을 반환한다. ex1) URL 다중 설정 대부분 속성을 배열로 제공하므로 다중 설정이 가능하다. @RequestMapping("/hello","/hi") public String hello(){ log.info("hello"); return "ok"; } ex2) HTTP 메소드 매핑 @RequestMapping이 특정 HTTP 메..
[Spring] application.properties와 application.yml의차이
·
Spring
.properties / .yml application.properties와 application.yml 두 가지 방식은 사실 똑같다. (크게 다르지 않다.) 두가지 방식 모두 프로젝트의 설정을 담당하는 파일이다. IntelliJ에서 기본적으로 Spring Initializr를 통해 Spring Boot 프로젝트를 생성하면 application.properties가 생성되지만, application.yml도 많이 사용되는 것 같다. 차이점 두가지 모두 똑같은 설정 정보를 입력하지만, 구조가 다르다. properties는 key=value의 형태로 이루어져 있고, yml은 계층 구조로 이루어져 있다. 아래 예제로 간단하게 확인해 보자. yml group1: group2: group3: message1: h..
[Spring] DB 연동 (MariaDB), MyBatis 사용
·
Spring
Spring DB 연동 Spring에서 DB 연결하는 방법을 간단히 알아보자. 1. gradle 설정 build.gradle에 아래와 같이 의존성을 추가해 주자. dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' //JDBC implementation 'org.springframework.boot:spring-boot-starter-jdbc' //mariadb runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' } 2. DB datasource 설정 Spring project의 application.properties에서 아래와 같이 datasource 정보를 설정해 주자..
[Spring MVC] @RequestBody와 @RequestHeader로 JSON 주고받기
·
Spring
@RequestParam, @PathVariable 기본적으로 @RequestParam과 @PathVariable을 통해 파라미터를 주고받는 방법으로 데이터를 처리할 수 있다. 2023.04.21 - [Spring_Web/SpringBoot] - [Spring] @PathVariable과 @RequestParam - 파라미터 받기 그러나, 데이터의 양이 많거나, 데이터를 사용자에게 드러내지 않고 싶을 때는 @RequestBody와 @RequestHeader로 JSON을 받아서 데이터를 처리할 수 있다. @RequestBody, @RequestHeader Header Content-Type: application/json userAccountId: accouunt123 ====================..
[Spring / Transaction] 트랜잭션 실제 적용되고 있는지 확인하는 방법
·
Spring
스프링 프레임워크를 이용하여 트랜잭션을 적용할 때는 @Transactional 애노테이션을 통해 선언적 트랜잭션 방식을 사용한다. 그런데 이 기능은 매우 편리하게 트랜잭션 관련 코드를 대체해 주지만, 실제로 트랜잭션 관련 코드가 눈에 보이지 않고 AOP를 기반으로 동작하기 때문에 실제 트랜잭션이 적용되고 있는지 확인하기 어렵다.이때, 트랜잭션이 TransactionSynchronizationManager 라는 클래스를 활용하여 확인할 수 있다. 트랜잭션 적용 확인TransactionSynchronizationManagerimport org.springframework.transaction.support.TransactionSynchronizationManager;위의 패키지의 TransactionSync..
[Java / Spring] Lombok 롬복
·
Spring
Lombok이란? Lombok이란 반복되는 메서드를 Annotation을 사용해서 자동으로 작성해 주는 Java의 라이브러리이다. 보통 Model, Entity의 경우 여러 속성이 존재하고, 이들의 속성들에 대해 Getter Setter 등의 메서드를 반복해서 작성해줘야 하는 경우가 많다. Lombok은 이 부분을 Annotation으로 대체하여 코드를 생성해 준다. Lombok을 이용해서 작성한 코드는 컴파일 과정에서 IDE가 Annotation을 이용해서 코드를 생성하고, 그 코드가. class에 담기게 되는 것이다. 귀찮은 반복 작업을 줄여준다는 점에서 매우 편리하고, 많이 사용하지만 남용해서는 안된다. 다른 라이브러리와의 충돌이 발생할 수도 있고, 내가 원하는 대로 동작하지 않을 수도 있기 때문이..