sopt 세미나를 마치고, 객체를 생성하는 방법 중 정적 팩토리 메서드 패턴과 필더 패턴을 배웠는데, 이 둘의 차이점이 무엇인지 자세하게 알기 위해 글을 작성하게 되었다. 사실 이 글을 작성하게 된 가장 큰 이유는.. 지금까지는 정적 팩토리 메서드 패턴만을 사용했는데, 빌더 패턴은 사용해본적이 없어서 이 둘의 차이점을 확실히 알고 두 가지 방법을 적절한 상황에 효과적으로 사용해보고 싶어서이다.ㅎ 객체를 생성하는 방법에는 여러가지가 있지만, 그 중 두가지 주요 방법으로 정적 팩토리 메서드와 빌더 패턴이 있다. 이 두 방법은 객체를 생성하고 초기화하는 과정에서 각각 고유의 장점을 제공한다. 0. new 키워드로 객체 생성MyClass obj = new MyClass(); new 키워드의 장점1) 간단하다.n..
1. this와 this() this와 this()는 괄호 하나 다를 뿐인데 전혀 다른 의미를 갖고있다. 결론부터 말하자면, this는 객체 자신을 가리키고, this()는 한 클래스 내에서 한 생성자에서 다른 생성자를 호출할 때 사용된다. this public class Person { private String name; //인스턴스 변수 private int age; private String sex; public Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } } 코드를 보면, Person 생성자 내에서 'this.객체 내의 인스턴스 변수 = 매개변수' 형식으로 this 키워드..
 백준 파이썬 1431 시리얼 번호
        
        
          백준 파이썬 1431 시리얼 번호
          🚀접근하기 전형적인 정렬 문제이다. 2중 for 문을 사용해서 순서대로 리스트의 시리얼 번호들을 비교해서 정렬해주는 방법을 생각했다. 근데... 알고보니 lambda식을 이용한 획기적인 정렬법이 있었으니... 🎉코드 import sys N = int(sys.stdin.readline()) serial = [] # 주어진 문자열 s에서 숫자들의 합을 계산하는 함수 def sum_of_digits(s): total = 0 for char in s: if char.isdigit(): total += int(char) return total for i in range(N): serial.append(sys.stdin.readline().strip()) for i in range(len(serial)-1): fo..
 스프링 커뮤니티 만들기 #10 -회원탈퇴 시 오류해결 2 (NullpointerException)
        
        
          스프링 커뮤니티 만들기 #10 -회원탈퇴 시 오류해결 2 (NullpointerException)
          이번엔 게시글 조회가 안되네,,? 그런데 이번엔 회원 탈퇴처리를 한 후에 게시글을 조회해봤더니 NullPointerException이 발생하였다..... 회원이 탈퇴함에 따라 게시글과 연결된 회원 정보가 'null'로 설정된 것 까지는 잘 했는데,,, 이 상황에서 발생한 NullPointerException 오류는 게시글을 조회하는 과정에서 해당 게시글을 작성한 회원의 정보를 참조하려고 했으나, 회원 정보가 이미 'null'로 설정되어 있기 때문에 발생한 것이다. 즉 회원 정보가 'null'이 될 수 있다는 점을 체크하지 않고 회원 정보가 있을 때만을 고려하여 (null이 아닐 때만을 고려하여) 코드 구현을 했기 때문이다..!! trace를 보니 DTO 변환 로직을 수정해야 함을 알 수 있었다. 즉 Ar..
 스프링 커뮤니티 만들기 #9 - 회원탈퇴 시 오류해결 (외래키 제약조건)
        
        
          스프링 커뮤니티 만들기 #9 - 회원탈퇴 시 오류해결 (외래키 제약조건)
          회원로직, 게시글 crud, 댓글 crud까지 다 구현한 후에 포스트맨으로 전체적으로 한 번씩 확인을 해주었다. 회원탈퇴 오류 근데... 회원로직만 테스트했을 땐 잘 됐던 회원탈퇴가 갑자기 이런 오류가 뜨면서 안됐다..ㅜㅜ trace를 잘 읽어보니 외래키 제약조건과 관련된 문제였다. member 테이블에서 member_id를 기반으로 한 행을 삭제하려고 시도했으나, article 테이블에 member_id를 참조하는 외래 키(FK6l9vkfd5ixw8o8kph5rj1k7gu)가 있어서 해당 작업이 실패한 것이다. 즉 로그인한 회원이 게시글을 쓴 상태에서 탈퇴를 하려니, 게시글에서 회원의 정보를 외래키로 갖고 있기 때문에 게시글 - 회원 간 제약조건을 설정하지 않으면 회원의 정보를 지울 수 없다(회원 탈퇴..
 스프링 커뮤니티 만들기 #8 북마크 목록 조회
        
        
          스프링 커뮤니티 만들기 #8 북마크 목록 조회
          게시글 북마크 기능은 다 만들었고, 이제 유저(멤버)의 북마크 페이지나 마이 페이지에서 북마크한 목록을 조회하는 기능을 구현할 것이다. Dto MyBookamrkDto package com.example.MyFreshmanCommunity.dto; import com.example.MyFreshmanCommunity.entity.Article; import com.example.MyFreshmanCommunity.entity.Major; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; import lombok.NoArgsConstructor; import java.time.LocalDateTime; @Getter @A..
 스프링 커뮤니티 만들기 #7 - 게시글 북마크
        
        
          스프링 커뮤니티 만들기 #7 - 게시글 북마크
          이번엔 게시글 북마크 기능을 만들어 볼 것이다. 이전 포스팅했던 댓글 좋아요 기능과 거의 비슷하다고 보면 된다. (사실 거의 똑같음) Entity 설계 Bookmark entity package com.example.MyFreshmanCommunity.entity; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.hibernate.annotations.OnDelete; import org.hibernate.annotations.OnDeleteAction; import java.time..
 스프링 커뮤니티 만들기 #6 - 댓글 좋아요
        
        
          스프링 커뮤니티 만들기 #6 - 댓글 좋아요
          회원로직, 게시글, 댓글 CRUD까지 구현 완료했으니 이젠 댓글 좋아요 기능을 구현해보겠다. Entity 설계 package com.example.MyFreshmanCommunity.entity; import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.OnDelete; import org.hibernate.annotations.OnDeleteAction; @NoArgsConstructor @AllArgsConstructor @Getter @ToString @Entity public class LikeComment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) p..
- Total
- Today
- Yesterday
- 다이나믹 프로그래밍
- SQLD
- 커뮤니티
- 프론트엔드
- 웹MVC
- 북마크
- 백준
- 스프링 커뮤니티
- JPA
- 회원탈퇴
- 스프링 북마크
- elasticsearch
- SQL
- SQL 레벨업
- 인텔리제이
- EnumType.ORDINAL
- 자바 스프링
- 웹 MVC
- 스프링부트
- 자바
- 지연로딩
- 로깅
- 준영속
- DP
- 비영속
- 로그아웃
- 영속
- 백준 파이썬
- 스프링
- 파이썬
| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 |