TIL 17

[24.09.17] Spring boot, coolsms를 활용한SMS 전송

들어가기 전!한건에 20원입니다.(24.09.17 기준)build.gradle에 dependencies 추가 나의 폴더 구조 Service 층application.yml 파일에 정보를 저장한 이후, 사용할 곳에 위와 같이 선언한다.  이후에, 로직에 "Message message = new Message();를 선언한 후발신/수신 자 정보를 넣고, 내용을 작성해서 "SingleMessageSentResponse"객체와 위에 미리 선언한 "DefaultMessageService"객체를 사용하여 전송하면 된다. 성공!   참고 자료https://console.coolsms.co.krhttps://github.com/coolsms/coolsms-java-examples GitHub - coolsms/cools..

TIL 2024.09.17

[24.09.13] Springboot Exception Handling

Exception Handling 순서ErrorCode Enum 클래스로 생성Exception 발생시 응답할 ExceptionResponse 클래스 생성사용자 정의 CommonException 클래스 생성Exception 발생시 전역으로 처리할 GlobalExceptionHandler 클래스 생성ServiceImpl에 예외처리 적용하기api 실행 및 exception 결과 확인 1. ErrorCode Enum 클래스로 생성에러 코드를 enum 클래스로 정리 2. Exception 발생시 응답할 ExceptionResponse 클래스 생성예외 발생시 응답하는 에러 정보 클래스 3. 사용자 정의 CommonException 클래스 생성RuntimeException 상속받는 CommonException을 작성..

TIL 2024.09.16

[24.09.09] MSA FeignClient

FeignClient 다른 서버와 통신(Json 형식)상황: Other Service Server에서 다른 Server(Member Service)에 있는 값을 얻어와야한다.(Infrastructure Service 층, FeignClient)흐름1. Domain ServiceImpl 에서 현재 도메인의 Infrastructure층 Service 호출한다.2. 값을 갖고 GateWay로 간다.3. Member Service Server에서 해당 로직을 처리하고 값을 반환하여 다시 Other Service Server로 돌아와 나머지 로직 처리!4. 마지막으로 값 받아서, 파싱한다. 상세히 보기1. Domain ServiceImpl 에서 현재 도메인의 Infrastructure층 Service 호출한다. ..

TIL 2024.09.09

[24.09.06] Spring Cloud MSA

현재 진행중인 프로젝트가 Monolithic 에서 MSA(Micro Service Architecture)로 분리하고 발표하고 마무리 하였다. 근데 분리하고 나서부터는 프로그램을 돌려서 테스트하는 방법을 알지 못했다. 그래서 리팩토링을 하고 싶지만, 하지 못하여 내가 MSA 지식이 부족한건가 라는 생각이 들어 MSA를 제대로 한번 파고 들었다. 그래서 여러 블로그도 찾아보고 유튜브도 몇 개 봤지만, 내 수준에서 이해가 안됐다. 그래서 하.. 그냥 어쩔수 없다. 이거 생각해낸 Netflix 관련된 사람이 MSA 발표하는 Conference 영상을 보자. 하고 (https://www.youtube.com/watch?v=VPdPR5DxhaI)봤다.영상을 듣고 이해한대로 이해하려 노력하였지만 100%는 이해하지..

TIL 2024.09.08

[24.08.21] Persistent Context(JPA)

엔티티 매니저 팩토리(EntityManagerFactory)란?엔티티 매니저를 생성할 수 있는 기능을 제공하는 팩토리 클래스이다.thread-safe하기 때문에 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간 공유해서 재사용한다.thread-safe한 기능을 요청 스코프마다 생성하기에는 비용(시간, 메모리) 부담이 크므로 application 스코프와 동일하게 싱글톤으로 생성해서 관리하는 것이 효율적이다.따라서 데이터베이스를 사용하는 애플리케이션 당 한 개의 EntityManagerFactory를 생성한다. 엔티티 매니저(EntityManager)란?엔티티 매니저는 엔티티를 저장하는 메모리 상의 데이터베이스를 관리하는 인스턴스이다.엔티티를 저장하고, 수정, 삭제, 조회하는 등의 엔티티와 관..

TIL 2024.08.25

[24.08.19] SpringMybatis 내용 몇가지 간단 정리

트랜잭션 전파 옵션REQUIRED: 현재 트랜잭션이 있으면 그 트랜잭션에서 실행하고, 없으면 새 트랜잭션을 시작합니다.REQUIRED_NEW: 항상 새 트랜잭션을 시작하며, 기존 트랜잭션이 있으면 잠시 중단합니다.SUPPORTS: 트랜잭션이 있으면 그 트랜잭션 내에서 실행하고, 없으면 트랜잭션 없이 실행합니다.NOT_SUPPORTED: 트랜잭션 없이 실행하며, 기존 트랜잭션이 있으면 잠시 중단합니다.MANDATORY: 반드시 트랜잭션 내에서 실행하며, 진행 중인 트랜잭션이 없으면 예외를 발생시킵니다.NEVER: 트랜잭션 없이 실행하며, 기존 트랜잭션이 있으면 예외를 발생시킵니다.NESTED: 현재 트랜잭션이 있으면 중첩 트랜잭션 내에서 실행하며, 없으면 새 트랜잭션을 시작합니다.Controller : 가..

TIL 2024.08.19