본문 바로가기

전체 글

JPA 기본 어노테이션, 관계설정 ✅ @Entity JPA를 사용하여 객체를 테이블과 매핑할 때 사용한다.(필수)PK 값이 필수이다.(@Id 사용)기본 생성자가 필수이다.final, enum, interface, inner 클래스에는 사용할 수 없다.필드에 final 키워드를 사용할 수 없다.@Entity@Table(name = "board")public class Board { @Id private Long id; // @Column을 사용하지 않아도 자동으로 매핑된다. private Integer view; // 객체 필드 이름과 DB 이름을 다르게 설정할 수 있다. @Column(name = "title") private String bigTitle; // DB에는 기본적으로 enum이 없.. 더보기
일정프로젝트 트러블슈팅 1️⃣일정 CRUD 📖 배경로그인을 해야지 스케줄을 작성할 수 있지만 로그인에 실패가 되어도 작성한 글이 DB에 저장되는 문제가 있었다🚗 전개httpResponse에서 리다이렉트로 로그인페이지로 보내주면 doFilter가 동작 안될줄 알았지만리다이렉트해도 동작해서 컨트롤러까지 가고 있었다🔥절정기존 코드에 return 한 줄만 추가하니 해결됐다  2️⃣ 댓글삭제 📖 배경댓글을 삭제하는중 fk연관관계 때문에 오류가 나왔다Cannot delete or update a parent row: a foreign key constraint fails🚗 전개오류내용을 찾아보니 댓글 테이블에서 설정한 일정 테이블과의 외래 키 제약 조건때문에나는 문제였는데 JPA를 잘 모르다보니 오류 수정에 감이 잡히지 않았다 .. 더보기
자바 JPA 정리 (ORM,Hibernate) 💠JPA Java의 ORM 기술 표준> 객체 지향 프로그래밍 언어인 Java와 관계형 데이터베이스 간의 패러다임 불일치 문제를 해결하여 데이터베이스 작업을 객체 지향적으로 수행할 수 있도록 지원한다. 대표적인 구현체로 Hibernate를 주로 사용 💠ORM(Object-Relational Mapping)객체와 관계형 DB를 자동으로 Mapping하여 패러다임 불일치 문제를 해결한다.> ORM은 Java 뿐만이 아니라 다양한 언어에서 존재하는 기술 💠 Hibernate 활용한 방법 📖활용위한 필수 지식 ✅ 영속성 컨텍스트(PersistenceContext) Entity 객체를 영속성 상태로 관리하는 일종의 캐시 역할을 하는 공간으로 여기에 저장된 Entity는 데이터베이스와 자동으로 동기화되며 같은.. 더보기
HTTP와 기본 용어 정리 (Stateful,Conection,3-way,Tcp & Udp) 📖 들어가기Sesseion 과 Cookie 에 대해 들어가기전 기본 배경 지식들을 정리했다 💠 Scale Up단일 서버의 하드웨어의 사용을 높인다. (CPU, Memory 등의 스펙을 높인다)요청에 대한 처리를 더욱 빠르게 할 수 있도록 만든다.💠 Scale Out같은 사양의 서버(인스턴스)를 여러 대 배치한다.동시에 더 많은 사용자 요청을 처리할 수 있도록 만든다.Stateful(상태 유지) VS Stateless(무상) StatefulStateless정의상태를 유지하는 시스템상태를 유지하지 않는 시스템데이터 저장세션 또는 데이터베이스에 상태 저장요청 간 상태를 저장하지 않음예시데이터베이스 연결, 로그인 세션REST API, DNS, HTTP 요청서버 부하클라이언트의 상태를 저장하므로 부하 증가상.. 더보기
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.. 더보기