목록분류 전체보기 (77)
땃쥐네
이펙티브 자바의 아이템 1 생성자 대신 정적 팩터리 메서드를 고려하라 부분을 학습하고 정리한 내역을 포스팅해보겠습니다. 책에서는 p.8 ~ p.13 의 내용에 해당합니다. 1. 생성자의 한계, 그리고 정적 팩터리 메서드 Member member = new Member(); 클래스의 인스턴스를 얻는 1차적인 방법은 생성자가 있습니다. 하지만 반드시 생성자를 호출하지 않고도 정적 팩터리 메서드를 이용해 객체 인스턴스를 얻어올 수 있습니다. 2. 정적 팩터리 메서드의 장점 1 : 이름을 가질 수 있다 2.1 생성자 public class Member { private final String name; private final int age; private final Role role; public Member..
이 포스트는 HTTP 완벽 가이드의 01장을 읽고 개인적으로 굵직하다 느낄만한 키워드를 정리해서 작성했습니다. 우리가 개발하는 웹 애플리케이션들은 HTTP 프로토콜 위에서 동작하고, 우리가 편리하게 사용하는 각종 웹 프레임워크들도 결국 HTTP 메시지 처리에 관한 세부적인 로직들을 많이 추상화시켜 뒀습니다. 그 많은 것들을 추상화시켰지만 결국 여러가지 실무적인 문제들은 HTTP 기본 지식이 있어야 해결할 수 있을 때가 많아집니다. 요즘 서비스들은 단순히 특정 웹 애플리케이션 하나만으로 동작하지 않고 여러 개의 애플리케이션을 함께 결합하서 운영하는 경우가 많습니다. 서비스의 규모가 커지면 커질수록 결국 많은 애플리케이션간의 의존관계를 구축하게 될테고 이들 간에도 간 HTTP 통신을 사용하게 될 것입니다. ..
스터디 개요 주제 : Http 완벽가이드 일정 : 없음 방식 : 책 혼자 읽고 정리 한번씩 해보기 참가자 1명 땃쥐 : https://github.com/ttasjwi 참가자 없는 스터디라니, 이게 뭔소리냐?? 싶을 수 있는데 인원을 구하기 힘들어서 혼자라도 해보려고 한다. 매주 적어도 일정분량은 꼭 하자는 생각에서 이렇게 셀프 스터디를 정해놨다. 혹시 이 책을 함께 스터디하고 싶으신 분은 언제든지 문의 주세요. 일정 - 1주차(2023.09.01) : 1장(p.3 ~ p.25) - 2주차(2023.09.08) : 2장, 3장(p.27~p.84)
문제 플랫폼 : 백준 번호 : 02485 제목 : 가로수 난이도 : Silver 4 모든 가로수가 같은 간격이 되도록 새로 심어야 하는 가로수의 최소수를 첫 번째 줄에 출력한다 문제 : 링크 생각 문제에서 주어진 예시를 먼저 분석합니다. 1,3,7,13 사이에 나무를 균등하게 심어야하는데 현재 주어진 나무 사이의 간격은 2,4,6입니다. 이들의 최대공약수인 2 간격씩 벌려서 나무들을 배치해주면 나무들을 균등하개 배치할 수 있습니다. 각 구간마다 심어야 할 나무의 갯수는 (각 간격)/(간격간의 최대공약수) - 1 이라는 규칙을 가집니다. 1과 3 사이의 간격은 2이고, 이 사이에는 2/2 -1 = 0개의 나무를 배치하면 됩니다. 3과 7 사이의 간격은 4이고, 이 사이에는 4/2 -1 = 1개의 나무를 배..
문제 플랫폼 : 백준 번호 : 01193 제목 : 분수찾기 난이도 : Silver 5 첫째 줄에 분수를 출력 문제 : 링크 생각 대각선이 가로지르는 방향 단위로 라인(line)을 나눴다. 예를 들면 다음과 같다. - 1번 라인 : 1/1 - 2번 라인 : 1/2 2/1 - 3번 라인 : 3/1 2/2/ 1/3 - 4번 라인 : 1/4 2/3 3/2 4/1 - 5번 라인 : 5/1 4/2 3/3/ 2/4 1/5 각 라인의 규칙을 일반화해보면 다음 규칙을 도출해낼 수 있다. i번 라인에는 i개의 분수가 있다. 짝수 라인은 분자 증가, 분모 감소하고, 홀수 라인은 분자 감소, 분모 증가한다. i번 라인의 분자, 분모의 합은 line + 1과 같다 입력받은 x가 몇 번째 line에 속해있는 지, 그리고 그 라인..
스터디 개요 주제 : 이펙티브 자바 일정 : 2023.08.03 시작 예정, 매주 목요일 21시 방식 : 각자 책을 읽어오고, 학습하면서 느낀 점/경험/공유하고 싶은 지식 등을 공유하는 시간 갖기 참가자 2명 땃쥐 : https://github.com/ttasjwi Hwi: https://github.com/hwicode 일정 1주차(2023.08.03) : 1장, 2장(~ Item 09) 2주차(2023.08.10) : 3장 (~ Item 14) 3주차(2023.08.17) : 4장 (~ Item 25) 4주차(2023.08.24) : 5장 (~ Item 33) 5주차(2023.08.31) : 6장 (~ Item 41) 6주차(2023.09.07) : 7장 (~ Item 48) 7주차(2023.09.1..
문제 플랫폼 : 백준 번호 : 02798 제목 : 블랙잭 난이도 : Bronze 2 N장의 카드에 써져 있는 숫자가 주어졌을 때, M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 구해 출력 문제 : boj2798 생각 1. 합을 구해야하는데 3개 숫자를 선택해서 반복을 돌려야하므로 배열에 저장해야한다. 2. 배열의 서로 다른 인덱스에 위치한 숫자 3개를 선택하려면 3중 for문을 돌려야할 것이다. 이렇게 숫자 3개를 구하고 모두 합하는 작업을 반복할 경우 시간복잡도가 O(N3)까지 갈 듯 하다. 3. 반복문을 돌리는 것은 피할 수 없다.하지만 불필요한 반복을 줄일 수 있진 않을까? 4. 3중 반복문을 돌 때 첫번째 반복문, 두번째 반복문 시점에서 여태까지 합산한 값이 m보다 크면 거기서부터는 더..
팀프로젝트 진행 과정에서, 단위 테스트는 통과했으나 실제 API를 통해 전체적으로 잘 작동되는지 확인했을 때 예외가 터지는 부분이 발생해서 삽질을 하게 됐습니다. 저희 프로젝트에서는 '여행 일정 관리 서비스'를 구현하고 있습니다. 사용자(여행자, Tripper)는 여러개의 여행(Trip)을 가질 수 있고, 여행(Trip)은 여러 개의 연속된 여행일(Day)를 가질 수 있으며, 여행일에는 여러 개의 일정(Schedule)들을 가질 수 있습니다. 어떤 여행일(Day)에도 속하지 않은 일정들은 Trip의 임시보관함(TemporaryStorage)에 속한 일정들로 간주하고 있습니다. 일정을 생성하는 과정에는 tripId, dayId 라는 필드를 전달함으로서 어느 Trip의 어느 Day에 생성할지 지정할 수 있습..