전체 글 234

[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..

🔔[항해99]/TIL 2022.09.01

[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..

🔔[항해99]/TIL 2022.08.31

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 흐름정리.. 개인과제 절반이라도 하기....

🔔[항해99]/TIL 2022.08.30

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..

🔔[항해99]/WIL 2022.08.27

4주차 8/21~8/28 WIL

3주차 WIL은 그때 당시 사정으로 적지 못하였다.. 한 주차를 건너뛰고서 작성하려니 조금 마음에 들지않지만.. 앞으로 다 채워나가면 될 일이다! 이번주에도 지난 주와 마찬가지로 스프링을 이용해서 CRUD 기능구현과 추가로 JWT 토큰방식을 이용한 로그인, 인증인가, Spring Security 를 구현했다! CRUD는 조금 적응이 되었으나 jwt와 spring security.. 그리고 JPA 를 이용한 연관관계가 정말 어려웠다.. 이번주의 키워드 ORM (참고블로그) 2022.08.18 - [SPRING] - [SPRING] JPA / ORM [SPRING] JPA / ORM JPA JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 JPA가 제공하는 API를 사용하면 객체..

🔔[항해99]/WIL 2022.08.27

22.08.26 (금) 26일 차

오늘 한 것 새로운 주차 팀 SA 작성 알고리즘 1문제 Spring/Java 개념 정리 스프링 프로젝트 (개인과제였지만 입문1주차 과제가 계속이어져서 그냥 프로젝트로) 게시글 CRUD 구현 및 리팩토링 게시글 CRUD 에러파티 ~^^ 에러노트 작성 시작 오늘 배운 것 2022.08.26 - [JAVA] - [JAVA] 제네릭 Generic 2022.08.23 - [SPRING] - [SPRING] Spring Security - 쿠키 vs 세션 vs JWT + Token 2022.08.27 - [SPRING/🚨에러노트[SPRING]] - [22.08.27] Reason: Failed to create query for method Repository.findAllByOrderByModifiedAtDesc..

🔔[항해99]/TIL 2022.08.27

[22.08.27] JPA 지연로딩 프록시 에러

문제상황 역시 Spring 프로젝트 중 에러,,,, 해당 게시글 작성자만 수정이 가능하도록 하였는데 같은 사용자로 로그인이 되어있음에도 같은 사용자가 아니라고 에러가 떴다. Service단 로직에서는 해쉬코드만 봐서는 똑같아보인다. 왜 자꾸 아니라는 거니..? ㅠㅠ 더 타고 들어가서 equals 함수를 보니 슬슬 답이 보이려고 한다ㅠ 여기서는 왜 다르니..? 힌트는 $HibernateProxy$ if문에서 비교하는 객체들을 살펴보자 찾았다 요놈^^....... UserDetils에서 가져온 Member에 posting 값이 안들어가 있다. 왜? Hibernate.Lazy 블라블라..Exception 즉 지연로딩으로 인한 문제 => 해쉬코드가 같아서 이퀄스 쓰면 될줄알았는데 이퀄스를 타고 들어가보니 프록시..

🚨에러노트 2022.08.27

[22.08.27] SpringBoot Response Serialization error /직렬화 에러

문제상황 Spring 프로젝트 중 게시글 상세조회시 출력값이 null 이 떴다.. 어디서 문제일까 디버깅 responseDto에도 값이 제대로 들어가 있는데 왜 일까..... responseDto 를 보자! ......^^ 불길한 회색 글씨.. 왜 나는 알아채지 못했을까.. 왜 나는 Getter도 안박아주고 시작했는지..? Getter의 중요성 2022.09.01 - [CS 쌓기] - [CS] Serialization & Deserialization 데이터의 직렬화와 역직렬화 =>Json 형태의 직렬화를 진행해주어야 하는데 @Getter의 부재로 직렬화 에러가 일어난 것. 해결방법 Dto에 Getter..꼭..써주기.. 이제야 return new responseDto에도 값이 제대로 들어갔다.. ^^!

🚨에러노트 2022.08.27

[22.08.27] Reason: Failed to create query for method Repository.findAllByOrderByModifiedAtDesc()! No property 'posting' found for type 'Posting';

문제상황 서버 시작에서부터 에러 파티 ^^!!!!!!! 콘솔을 읽어보니 어찌어찌 repository가 문제라는 것 같다 JpaRepository를 상속받은 Repository에서 문제가 일어났단다... No propoerty 'posting' found for type 'Posting' Dto에서 Posting을 가지고 오는데에 문제가 생긴걸까? 응 기본생성자주입안했어..^^! 해결방법 ^^! =>서버구동 완..

🚨에러노트 2022.08.27