본문 바로가기

항해 99/Java

(52)
빌터 패턴 Builder Pattern(빌더 패턴) 복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 생성 패턴. 생성자에 들어갈 매개 변수를 메서드로 하나하나 받아들이고 마지막에 통합 빌드해서 객체를 생성하는 방식 탄생 배경 점층적 생성자 패턴(Telescoping Constructor Pattern)은 필수 매개변수와 함께 선택 매개변수를 0개, 1개... 받는 형태로, 다양한 매개변수를 입력받아 인스턴스를 생성하고 싶을 때 사용하던 생성자를 오버로딩하는 방식 문제점 클래스 인스턴스 필드들이 많아질 수록 생성자에 들어갈 인자의 수가 늘어나 몇 번째 인자가 어떤 필드였는지 햇갈릴 경우가 발생 생성자로만 필드를 선택적으로 생략할 수 있는 방법이 없음 타입이 다양할 수록 생성자 메서드 ..
WIL - 3 Fact : 이번주 있었던 일, 내가 한 일 월 : 항해 프로그래밍 주차 테스트, 자바 - 프로세스, 쓰레드, 모던 자바 학습, SOLID 구조 학습 화 : Intellij github 연동, Spring 프로젝트 세팅, HTTP, MVC 패턴, CRUD, JDBC 학습 수 : 3 Layer Architecture, IoC & DI, Bean, JPA, Entity, Spring Data JPA, Query Method 학습 목 : 1주차 과제 프로젝트 세팅(Intellij 세팅, USD, API 명세서, ERD, Private Git Repository git clone 등) 및 CRUD 구현 금 : 관심사 분리, CRUD 기능 테스트, Update, Delete 시 비밀번호 매칭 기능 추가 프로젝트 ..
프로그래밍 테스트 및 IDE 프로젝트 빌드 오류 해결 인텔리제이 프로젝트 빌드 오류 해결방법 에러 코드 Module 'week' production: java.lang.ClassCastException: class org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType cannot be cast to class org.jetbrains.jps.builders.java.dependencyView.TypeRepr$ClassType (org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType and org.jetbrains.jps.builders.java.dependencyView.TypeRepr$ClassType are in ..
Java - 모던 자바 모던 자바_Java8 Java 8에서 새로 추가된 개념 함수형 프로그래밍(lambda) 객체지향 프로그래밍의 핵심 아이디어 코드의 재사용성 높아짐 유지보수 및 확장하기 쉬워짐 신뢰성 있게 사용하기 쉬워짐 함수형 프로그래밍의 핵심 아이디어 수학의 함수처럼, 특정한 데이터에 의존하지 않고, 관련없는 데이터를 변경하지 않으며, 결과 값이 오직 입력 값에만 영향을 받는 함수(순수 함수) 프로그램을 순수한 함수의 모음으로 바로보고 구현 효용 검증이 쉬움(검증이 필요한 부분만 검증 가능) 성능 최적화가 쉽다(특정 input에 대한 output을 재사용할 수 있음 - 캐싱) 동시성 문제를 해결하기 쉽다(함수는 다른 값의 변경을 야기하지 않음) 자바 함수의 변화 함수를 일급 값으로 일급 값(일급 객체) 특징 함수에 인..
Java - 프로세스, 쓰레드 프로세스(Process) , 쓰레드(Thread) 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위 쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스는 "실행 중인 프로그램"을 의미 프로세스 구조 Code : Java main 메서드와 같은 코드 Data : 프로그램 실행 중 저장할 수 있는 저장공간 전역 변수, 정적 변수, 배열 등 초기화된 데이터를 저장하는 공간 Memory (메모리 영역) Stack : 지역 변수, 매개변수 리턴 변수 저장하는 공간 Heap : 프로그램이 동적으로 필요한 변수를 저장하는 공간(new( ), mallock( )) 쓰레드는 프로세스 내에서 일하는 일꾼 쓰레드 생성 프로세스가 작업 중인 프로그램에서 실행요청이 들어오면 쓰레드를 만들어 명령을 처리 쓰..
WIL - 2 Fact : 이번주 있었던 일, 내가 한 일 월 : 설연휴 화 : 페어 프로그래밍 1일차 - 코딩 테스트 알고리즘 문제 풀이 수 : 페어 프로그래밍 2일차 - 코딩 테스트 알고리즘 문제 풀이 목 : 페어 프로그래밍 3일차 - 코딩 테스트 알고리즘 문제 풀이 금 : 페어 프로그래밍 4일차 - 코딩 테스트 알고리즘 문제 풀이, 자바 예외 처리 학습 토 : 페어 프로그래밍 5일차 - 코딩 테스트 알고리즘 문제 풀이, 자바 예외 처리, 제네릭 문법, Collection 학습 Feeling : 나의 감정적인 반응, 느낌 페어 프로그래밍을 통해 다른 사람과 같이 알고리즘 문제를 푸는 것이 여러 관점에서 문제를 해석하고 방법을 찾을 수 있어서 좋았음 몇몇 알고리즘 문제들은 상당히 어렵게 느껴졌고, 개발 공부에 많은 ..
페어 프로그래밍 - 코딩 테스트 5 코드 리뷰 - ChatGPT 44. 2016년 페어 프로그래밍 코드 package pair5; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.format.TextStyle; import java.util.Locale; /** * 2016년 * 2016년 1월 1일은 금요일입니다. * 2016년 a월 b일은 무슨 요일일까요? * 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, `solution`을 완성하세요. */ public class Calender { // [31 29 31 30 31 30 31 31 30 31 30 31] // a = 월, b = 일 // 1월 1일 = 금 // 1월 ..
Java - 오류 및 예외 처리, 제네릭, Collection 오류 및 예외 처리 오류(Error) : 일반적으로 회복이 불가능한 문제 시스템 레벨 도는 환경적인 이유로 발생 코드의 문제로 발생하는 경우도 있으나, 발생하면 일반적으로 회복이 불가능 에러가 발생한 경우 어떤 에러로 프로그램이 종료되었는지 확인하고 대응 예외(Exception) : 일반적으로 회복이 가능한 문제 회복이 가능하다는 전제는 예외가 발생할 수 있다는 것을 인지하고 대응했을 것 코드레벨에서 할 수 있는 문제사항에 대한 대응은 "예외 처리"에 속함 예외의 종류 코드 실행 관점에서의 예외 종류 컴파일 에러(예외) .java 파일을 .class 파일로 컴파일할 때 발생하는 에러 대부분 자바 프로그래밍 언어의 규칙을 어겨서 발생 없는 클래스 호출, 접근이 불가능한 프로퍼티나 메서드에 접근하는 경우 해..