전체글 224

[22.09.06] @EnableJpaAuditing 부재 에러 / Timestamped null값 에러

문제상황 이번주 프로젝트는 나만의 투두리스트 만들기. 내가 맡은 부분은 투두 CRUD 인데 작성시에 작성시간과 수정시간이 자동으로 들어가게 만들었는데 출력값을 보니 null 값이 들어가 있었다. 실제로 DB에도 값이 안들어가는 상태 .. Timestamp Class, entity, Response Dto 모두 확인해 보았지만 이상이 없었다.. 그러던중 https://thalals.tistory.com/220 [Spring] JPA Auditting 과 TimeStamp Class (테이블 시간 기 Spring이든 뭐든 프로젝트를 하다보면, 테이블의 생성기간과, 수정시간이 필요할 때가 있다. 오늘은 이 테이블에 생성, 수정시간을 기록할 수 있는 컬럼을 효율적으로 작성하는 법에 대해 공부해 thalals.t..

🚨에러노트 2022.09.06

5주차 8/29~9/4 WIL

CORS 란? **교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)**는, 추가 HTTP 헤더를 사용하여 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 출처(Origin) 이란? URL은 하나의 문자열 같지만 다음과 같이 구성 출처는 Protolcol 과 Host 그리고 Port까지 모두 합친 것을 의미 CORS 정책에 의해 차단되는 에러가 발생하는 이유? HTTP 요청에 대해서 어떤 요청을 하느냐에 따라 각기 다른 특징을 가지고 있기 때문 예) HTML → 기본적으로 Cross-Origin 정책을 따름 **XMLHttpRequest, Fetch API**등 **script 태그 내**..

[SPRING][JPA] Proxy / 지연로딩과 즉시로딩

참고 블로그 JPA에서 프록시는 연관된 객체들을 데이터베이스에서 조회하기 위해서 사용 프록시를 사용하면 연관된 객체들을 처음부터 데이터베이스에서 조회하는 것이 아니라 실제 사용하는 시점에 데이터베이스를 조회 가능 하지만 자주 함께 사용되는 객체들은 조인을 사용해서 함께 조회하는 것이 더 효과적 즉시로딩 지연로딩 ❓❗ 즉시로딩만 사용 시 원하지 않는 연관된 엔티티까지 데이터베이스에서 함께 조회하는 것은 효율적이지 않음 => 이러한 문제를 해결하기 위해 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공 ==> 지연로딩! 프록시 기초 엔티티를 실제 사용하는 시점까지 데이터베이스 조회를 미루고 싶으면 EntityManager.getReference() 메소드를 사용하면 됩니다. 이 메소드를 ..

22.09.01 (목) 32일 차

오늘 한 것 [팀과제] 머지하기 -> 대댓글좋아요 DB내용 안들어감 / 대댓글 member_id 값 잘못 들어감 (수정 필요) 알고리즘 1문제 [개인과제] 제출하기 Spring 정리하기 ( AOP포함) - 에러노트에 필요한 개념들 JAVA 정리하기 (Set) [팀과제] Read.me 작성 오늘 배운 것 2022.08.27 - [SPRING/🚨에러노트[SPRING]] - [22.08.27] JPA 지연로딩 프록시 에러 2022.09.01 - [SPRING] - [SPRING] AOP 개념 2022.09.01 - [알고리즘/JAVA] - [백준 3052] 나머지 2022.09.01 - [SPRING] - [SPRING] [JPA] cascade Type 영속성 전이 2022.09.01 - [CS 쌓기] - ..

[JAVA] List 중복 제거

참고 블로그 [Java] List 중복 제거하는 2가지 방법 Java에서 List는 중복된 데이터를 가질 수 있습니다. List에 중복된 데이터가 있을 경우, 중복된 데이터를 제거하는 2가지 방법을 소개합니다. Set 이용하기 Stream 이용하기 - Java 8 이상 1. Set 이용하기 hianna.tistory.com Set 이용하기 Set은 중복을 허용하지 않는 객체로 List -> Set 변경하면 자연스레 중복이 제거됨. import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; public class RemoveListDuplicat..

[CS] Serialization & Deserialization 데이터의 직렬화와 역직렬화

참고블로그 직렬화와 역직렬화의 개념 직렬화 Serialization 객체를 직렬화하여 전송 가능한 형태로 만드는 것 역직렬화 Deserialization 직렬화된 파일 등을 역으로 직렬화하여 다시 객체의 형태로 만드는 것 직렬화가 필요한 이유 개발 언어를 무엇을 선택하든, 사용하는 데이터의 메모리 구조는 크게 2가지로 나뉜다. 값 형식 데이터 int, float, char 등 값 형식 데이터는 스택에 메모리가 쌓이고 직접 접근이 가능하다. 참조 형식 데이터 객체와 같은 참조 형식 변수를 선언하면 힙에 메모리가 할당되고, 스택에서는 이 힙 메모리를 참조하는 구조로 되어 있다. 더보기 스택에는 수직으로 값이 쌓이고 들어온 순서대로 나가는 것이 아니라 스택에서 제일 최근 값이 먼저 나간다. 위 두 가지 데이터..

🌏CS 2022.09.01

[SPRING] [JPA] cascade Type 영속성 전이

특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을때 사용 양방향 매핑시에만 가능 @OneToOne, @OneToMany, @ManyToOne 연관 관계가 있는 어노테이션에 cascade() 지원 eg. 부모 엔티티 저장시 자식 엔티티도 저장하도록 하는 경우 더보기 ❗ 쓰면 안되는 경우 => 자식의 연관 관계가 2개 이상일때 ex) C라는 엔티티가 A와 B에 의해서 관리된다 Cascade 종류 ALL: 모든 Cascade를 적용 PERSIST: 엔티티를 영속화할 때, 연관된 엔티티도 함께 유지 MERGE: 엔티티 상태를 병합(Merge)할 때, 연관된 엔티티도 모두 병합 REMOVE: 엔티티를 제거할 때, 연관된 엔티티도 모두 제거 DETACH: 부모 엔티티를 detach(..

22.08.31 (수) 31일 차

오늘 한 것 알고리즘 2문제 개인과제 키워드질문 5개 [팀과제] 마이페이지 [팀과제] 마이페이지 에러수정 [개인프로젝트] id @GeneratedValue(strategy = GenerationType.IDENTITY) 차이점 정리 오늘 배운 것 2022.08.31 - [알고리즘/JAVA] - [백준 25304] 영수증 2022.08.31 - [알고리즘/JAVA] - [백준 10871] X보다 작은 수 2022.08.31 - [SPRING] - [SPRING] [JPA] 기본 키 매핑 @GeneratedValue 2022.09.01 - [SPRING] - [SPRING] AOP 개념 (수정중) 2022.08.27 - [이노베이션 캠프/WIL] - 5주차 개인과제 - API / Client & Server..

[SPRING] AOP 개념

참고블로그 우아한테크 유튜브 Aspect Oriented Programming 관점지향프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점에서 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법 말이 헷갈려서 찾아보니 일단은 OOP(객체지향 프로그래밍)의 한계에 대해서 알아야 한다. OOP의 한계 A,B,C 클래스들의 같은 색의 선들은 중복되는 메소드/필드/코드 등을 의미 만약 클래스A의 주황색 을 수정한다면 클래스B와 클래스C도 해당하는 부분을 찾아 수정해야함. 이는 SOLID 원칙에 위배 / 유지보수에도 쉽지 않음. 인프라로직의 중복이 횡단으로 나타나기 때문에 횡단 관심사, 흩어진 관심사 (Crosscutting Concerns..

[22.08.31] 조회 시 데이터 중복값 출력 에러

문제상황 스프링 팀과제 중 에러 내가 맡은 기능은 마이페이지 조회 시 내가 좋아요한 게시글/댓글/대댓글이 따로 출력되는 것 댓글 좋아요를 1개만 한 상태인데 마이페이지에서 같은 내용으로 여러 개가 중복으로 출력되었다. ❗❓ 처음 생각한 문제원인 => DB Table의 값이 중복으로 잘못뜨니까 중복을 제거해주는 Set을 써보자! =>수정안됨..... 해결방법 디버깅을 해보니 값은 맞게 들어가는데 한번 돌았던 for문을 다시한번 돌고 또돌고..? ...................... for문 닫은 중괄호를 잘못 설정했다. 그러므로 전체를 돌고 다시 돌고 반복했던 것.. 얌전히 수정하고나니 하나만 얌전히 뜬다..^^

🚨에러노트 2022.09.01

[SPRING] [JPA] 기본 키 매핑 @GeneratedValue

더보기 개인 프로젝트에서 DB id 들이 사용자 1,2,3,4.. 게시글 1,2,3,4.. 댓글 1,2,3,4.. 이런 식으로 하고 싶었는데 내가 구현한 거는 사용자 1,4.. 게시글 2,5,6.. 댓글 3,7,8.. 이런 식이라 찾아보니 기본키 매핑의 문제였다... ㅎㅎㅎㅎㅎㅎㅎ @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; 직접할당 : 기본 키를 어플리케이션에서 직접 할당 해주는 방법 (application에서 생성) @Id만 사용하면 됨 자동생성 : 데이터베이스가 자동으로 할당해주는 방법 (db가 생성) @Id와 @GeneratedValue 사용 여러가지로 나뉨! @GeneratedValue(strategy = Genera..

22.08.30 (화) 30일 차

오늘 한 것 알고리즘 2문제 개인과제 질문 5개 [팀과제] 대댓글 CRUD [팀과제] 대댓글 CRUD 에러수정 오늘 배운 것 2022.08.30 - [알고리즘/JAVA] - [백준 2753] 윤년 2022.08.30 - [알고리즘/JAVA] - [백준 14681] 사분면 고르기 2022.08.27 - [이노베이션 캠프/WIL] - 5주차 개인과제 - API / Client & Server / WAS , Web Server / HTTP 프로토콜 / Restful API 2022.08.31 - [SPRING/🚨에러노트[SPRING]] - [220830] Inconvertible types ; Cannot cast ... to ... 에러 https://github.com/SpringW03/SpringWk03..

22.08.29 (월) 29일 차

오늘 한 것 [개인프로젝트] 대댓글 CRUD [개인프로젝트] 대댓글 CRUD - 에러수정 야자반 면담 오늘 배운 것 에러 - JPA의 문제점 DB는 Table형태로 저장되기 때문에 대댓글의 양만큼 불러옴. = >Set으로 중복 삭제! 에러 - Delete SQL문이 안들어감 : JPA 특징인 영속성으로 삭제되어야 할 데이터가 계속 존재함 => cascade.ALL(or REMOVE), orphanRemoval = true 는 항상 세트로! 내일 할 것 [팀과제] 대댓글 CRUD commit 오늘 난 에러 수정한 후 다시 원복시에 왜 다시 에러가 안나오고 정상작동되는지 확인하기.. 알고리즘 백준 2문제 Spring 정리...... JWT/Spring Security 흐름정리.. 개인과제 절반이라도 하기....

5주차 개인과제 - API / Client & Server / WAS , Web Server / HTTP 프로토콜 / Restful API

API란 무엇인가? [참고] 노마드 코더 - API를 알아야하는 이유 : https://youtu.be/iyFHfzCRHA8 Application Programming Interface 응용 프로그램 프로그래밍 인터페이스 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스. 즉, 애플리케이션을 서로 연결하여 서로 통신 할 수 있다. API는 은행 창구 / 레스토랑 점원 ! 고객에게 요청/주문을 박고 금고/주방에 전달 후 다시 응답을 고객에게 전달 OPEN API란? 외부 사이트와 자유롭게 활용 및 공유하도록 설계된 API 대부분 무료제공이지만, 호출 수에 따라 비용발생 가능 Client 와 Server 란 무엇인가? 네트워킹 Networki..