본문 바로가기

전체 글

ExceptionHandler,ControllerAdvice 작성중 implementation 'org.springframework.boot:spring-boot-starter-validation:3.3.5'✅ 1. @Validated를 사용하여 서비스 계층에서 원시 타입 검증서비스 클래스에 @Validated를 선언하면 원시 타입에도 유효성 검사가 가능합니다.java복사편집import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import jakarta.validation.constraints.Min; @Service @Validated // 필수! 원시 타입 검증을 가능하게 함 public class UserService { publ.. 더보기
내일배움캠프 스프링 숙련 과제 일정관리 트러블 슈팅 1️⃣DB 연관관계 설정 📖 배경테이블이 users와 schdule 존재하는데 users의 id가 schdule 의 fk로 사용되고 있는 상황이고users의 id에 auto_increment 를 추가 할려다가 문제가 났다  🚗 전개 처음엔 그냥 Alter ... Modify 하면 쉽게  가능할줄 알았지만 오류만 나왔다 🔥절정DB를 전체 삭제하고 만들고 싶은 마음도 들었지만 공부겸 찾아봤다 방법은1️⃣ schdule의 fk를 삭제2️⃣ users 컬럼을 수정3️⃣ schdule에 다시 추가이다😁 결과확실히 자주 사용하지 않는 문법이라 버벅이는 부분이 많았다 문법에 익숙해지면 순서는 보기에는 간단해 보이니좋은 경험이였다 2️⃣ 검증관련문제 📖 배경 RequestDto에 여러 검증를 적용했지만 여러 .. 더보기
스프링 컨트롤러에서 리턴값 받은 후 스프링 흐름 📖 컨트롤러에서 DisPatcherServlet으로 return 값을 줄 때 처리해주는HttpMessageConverter,ViewResolver에 대해서 알아 보았다 💠판단 기준1️⃣ @ResponseBody 또는 @RestController가 붙어 있는가?✅ 있다면 → HttpMessageConverter 사용 (뷰 없이 JSON/XML 변환)❌ 없다면 → ViewResolver 사용 (뷰를 찾아 렌더링)2️⃣ 반환 타입이 ResponseEntity인가?✅ 맞다면 → HttpMessageConverter 사용 (HTTP 상태 코드 및 헤더 설정 가능)3️⃣ 반환 타입이 String인가?✅ @ResponseBody 없으면 → ViewResolver 사용 (뷰 이름으로 해석)✅ @ResponseBo.. 더보기
스프링(Spring) 어노테이션들 정리 + ResponseEntity 📌스프링 기본 어노테이션1️⃣ @Target@Target 이 선언된 하위 어노테이션이 어떤 범위에 적용되는지 설정한다.@Target의 ElementType.ANNOTATION_TYPE는 아래 enum상수에 따라 범위를 결정한다 2️⃣@ComponentSpring Bean에 등록하는 역할을 수행한다.3️⃣@Retention  @Retention 하위의 어노테이션이 얼마나 오래 유지되는지를 결정한다.4️⃣ @Document Javadoc 등의 문서화 도구에 의해 문서화되어야 함을 나타낸다.5️⃣ @Indexed 클래스가 컴포넌트 스캔의 대상으로 Spring Bean에 더 빠르게 등록되도록 도와준다. 6️⃣ @AliasFor같은 어노테이션의 속성들끼리 동일한 값을 공유하도록 설정할 수 있음.@Componen.. 더보기
자바 스프링 어댑터(Adapter),스프링 기본 흐름 📖 어노테이션 정리https://study5024.tistory.com/50 스프링(Spring) 어노테이션들 정리📌스프링 기본 어노테이션1️⃣ @Target@Target 이 선언된 하위 어노테이션이 어떤 범위에 적용되는지 설정한다.@Target의 ElementType.ANNOTATION_TYPE는 아래 enum상수에 따라 범위를 결정한다 2️⃣@Componentstudy5024.tistory.com 어노테이션을 어느정도 알고 보면 도움된다 📌 어댑터 다양한 컨트롤러(Handler)를 유연하게 만들기위해 어댑터 패턴을 도입하게 되었다. 컨트롤러들은 동일한 인터페이스를 구현하도록 하고 해당 인터페이스와 공통 로직 사이에 어댑터를 두어 유연하게 만든다. 서로 다른 인터페이스를 갖는 두 클래스를 연결해주.. 더보기
내배캠 기초 스프링 1주차 프로토콜,네트워크 기초(패킷,www),URI 🟩들어가기본격적 스프링 들어가기 전에 네트워크에 대한 강의가 있어서 정리를 해봤다 🟩네트워크 기초인터넷 Internet인터넷(Internet)은 인터넷 프로토콜 스위트(TCP/IP)를 기반으로 하여 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망을 일컫는 말이다. 오늘날은 유선(해저 광케이블), 무선(인공위성)를 활용해 World Wide Web(WWW) 구축해 사용한다 ◾WWW HTML로 작성하고 , URL로 위치 지정 후 HTTP로 데이터를 전송하는 시스템   ◾ Packet 네트워크 전송의 용량 단위. 조각조각 분할된 파일 데이터에 주소와 에러 데이터 등이 기록된다. 전송 시 순서를 보장하지 않기 떄문에 고유번호가 있는데 양 측에서 동일하게 하기위해 Protoco이 등장했다 🟩프로토콜프로토콜.. 더보기
내일배움캠프 키오스크과제 트러블슈팅 1. 데이터 참조 문제 (싱글톤)배경 키오스크에서 메뉴 데이터를 주고 받으며 사용자에게 보여주기 위한 UI 구성 중 다른 클래스의 데이터를가져오지 못 하는 상황이 생겼다 발단 이미 다른 클래스의 인스턴스를 생성해서 쓰고 있었는데 다시 생성해서 사용할려해서 다른 주소 값을바라보고 있어서 생긴 문제 였다 전개 데이터 제공하는 클래스를 싱글톤으로 구현하여 프로그램에서 한 개의 인스턴스만 사용해서 같은 공간공유하게 했다 결말 해결은 했지만 그렇게 꼭 필요한 기능은 아니였어서 공부한셈 하고 다시 예전으로 돌아갔다 2. 프로젝트 리팩토링배경하드 코딩 부분도 많고 지저분해서 가독성을 높이기위해 키오스크는 사용자에게 입력 받고 입력받은 값에 대한 리턴값을  출력하는 구조라 코드를 최대한 재활용해서 리팩토링 하고자 여러.. 더보기
내일배움캠프 계산기 프로젝트 회고 및 피드백 정리 계산기https://github.com/dnjs5024/CalculatorProject GitHub - dnjs5024/CalculatorProjectContribute to dnjs5024/CalculatorProject development by creating an account on GitHub.github.com 자바 첫 과제로 점점 리팩토링 하는 식으로 개발하는 식이였다나는 GUI 와 CLI 두 가지로 개발해봤다. gui를 해보며 괜히 일을 더 하는 느낌이였지만 그 만큼 공부도 되고 CLI먼저 구현하고 GUI를 했으면 좀 더 깔끔하게 코드를 작성했을 것 같아서 이 부분이 아쉽다. CLI는 객체지향적으로 하고 싶어서 생각하느라 설계가 좀 힘들었고 제네릭 적용하는게 감이 잘 안 잡혀서 억지로 사용.. 더보기