[TIL | 내일배움캠프] Builder

변채주·2025년 12월 4일

Spring

목록 보기
11/13

📅 TIL - 2025-12-04

✨ Keyword 요약

  • Builder 패턴
  • 과제 진행도 - 20% 추정

💻 코딩테스트

🔹 문제(프로그래머스)

🔹 풀이 접근 방식 (생략...)

  • 사용한 알고리즘:
  • 시간복잡도 고려사항:
  • 예외 처리나 경계 조건:

🔹 코드 스니펫

// K번째 수
import java.util.Arrays;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        int index = 0;

        while (index < commands.length) {
            for (int[] subArray : commands) {
                int[] temp = Arrays.copyOfRange(array, subArray[0] - 1, subArray[1]);
                Arrays.sort(temp);
                answer[index++] = temp[subArray[2] - 1];
            }
        }
        return answer;
    }
}
// 고양이와 개는 몇 마리 있을까
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS 'count' FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE;

🧑‍🏫 TIL

🔹 Builder 사용에 관하여

Setter

: 객체를 생성한 뒤 속성을 하나씩 지정하는 방법

  • (장점) 직관적 + 속성을 선택해서 값을 넣을 수 있다.
  • (단점) 객체가 초기화되기 전까지는 불완전한 상태임 + 불변성을 유지하기 어려움

Builder 패턴 이거 패턴이었어...

: 복잡한 객체를 단계적으로 생성할 수 있는 디자인 패턴

  • 가독성이 높고, 각 속성이 무엇을 의미하는지 명확히 드러남
    +build() 호출 이후 불변 객체를 만들 수 있어 안정적임
  • (단점) Builder 클래스를 추가로 구현해야 하므로 코드가 길어질 수 있음

두 방식이 완전 다른 방법으로 동작하기 때문에 코드 컨벤션을 잘 정할 필요가 있겠다.


📓 실시간 투표 시스템

🔹 Spring Security + JWT 구현

  • 회원가입, 로그인 페이지가 따로 없어서 어떻게 처리할지 고민 중
    → Postman으로 API 테스트만 해서 사용자 데이터를 넣어서 회원가입을 시키고, Security에서 제공하는 기본 로그인 페이지를 써볼까 궁리하고 있다. 이때까지 수업에선 RESTAPI를 구현하기 때문에 항상 disable()로 기본 로그인 페이지를 꺼놨었지만 이번 프로젝트 과정에서 그렇게 설정하는 이유를 알아본 뒤 사용 여부를 결정하려 한다.

🔹 ERD 수정

  • 정규화를 잘 해놓는 게 좋겠다 싶어서 ERD를 아래와 같이 수정했다.


📝 회고 및 메모

  • JWT나 Security에서 새로운 방식을 도전해보고 싶어서 공식 문서를 뒤져봤다. 여전히 보기 어렵다...이번 과제에서 중요한 부분은 Websocket과 STOMP 활용이므로 너무 시간을 잡아먹게 된다면 기존 방식대로 진행한 뒤 과제를 해결한 뒤 찾아보려 한다.
profile
우당탕탕얼레벌레 개발 일지

0개의 댓글