Archive: 2021

우아한테크코스 4기 최종 코딩테스트 후기

최종 코딩테스트 문제 링크https://github.com/woowacourse/java-pairmatching-precourse 아쉬운 점검증 로직 중복과정, 레벨, 미션을 입력받을 때, 해당 과정, 레벨, 미션이 존재하는지 검증해야 된다.나는 이를 검사하는 메서드를 각 열거형 객체가 가지고 있도록 하고 findByName메서드로 이름에 맞는 객체를 가져

메시지와 인터페이스

메시지, 인터페이스메시지는 객체들이 협력하기 위해 사용할 수 있는 유일한 의사소통 수단이다.메시지는 오퍼레이션 이름과 인자로 구성된다. receiver.message(argument); 이렇게 메시지를 구성할 수 있다. 메시지와 메서드그렇지만 메시지가 한 메서드를 가르키는 건 아니다.메서드는 메시지를 수신하는 객체, 인자에 따라 달라진다.메서드는 메시지를

우아한테크코스 4기 프리코스 3주차 회고

우아한 테크코스 4기 프리코스 3주차 회고3주차 문제 및 내 답안 링크https://github.com/woowacourse/java-vendingmachine-precourse 마주한 문제들MVC 패턴 적용MVC 패턴은 Model, View, Controller를 기준으로 객체들을 분류해서 프로그램을 만드는 패턴이다.2주차 피드백에 비즈니스 로직에 출력

우아한테크코스 4기 프리코스 2주차 회고

우아한 테크코스 4기 프리코스 2주차 회고2주차 문제 & 내 제출 답안https://github.com/woowacourse/java-racingcar-precourse https://github.com/yangdongjue5510/java-racingcar-precourse 마주한 문제들책임을 클래스들에게 분배하기이번 문제는 메서드를 분리하는 것에

13. Comparable과 Comparator의 차이!

Comparable과 Comparator의 차이결론둘 다 객체의 비교 기준을 마련하는 인터페이스. Comparable은 **compareTo(T t)**로 자기 자신과 다른 객체의 비교.Comparator은 compare(T t, T u) 자기 자신이 아닌 다른 두 객체 간의 비교. Comparable은 Arrays.sort()나 Collections.so

책임 할당을 위한 GRASP 패턴

GRASP 패턴일반적인 책임 할당을 위한 소프트웨어 패턴. 객체에게 책임을 할당할 때 지침으로 삼을 수 있는 원칙들. 영화 예매 시스템을 통해 GRASP 패턴을 익혀보자. 도메인 개념에서 출발하기어떤 책임을 할당해야 할 지 고민해야 될 때 가장 먼저 고려해야 할 게 도메인이다. 영화에는 금액 할인 영화, 비용 할인 영화가 있다. 할인 조건에는 순번 조건

REDIRECT와 FORWARD의 차이!!

REDIRECT와 FORWARD의 차이REDIRECT리다이렉트는 “서버가 클라이언트에게 해당 URL로 다시 요청하라고 명령하는 것”이다. 클라이언트가 서버의 URL에 요청 (get이던 post던 상관없이) 서버의 컨트롤러가 해당 URL에 매핑된 메서드 실행 해당 메서드가 다른 URL로 리다이렉트 시킬 경우, 클라이언트는 그 URL로 GET 요청을 새로 실

응집도와 결합도

응집도와 결합도응집도모듈 내부 요소가 연관된 정도.모듈의 내부 요소가 한 목적을 위해 긴밀하게 협력하는 정도. 높을 수록 좋다. 좀더 구체적으로 설명하면, 하나의 변경이 발생할 때 모듈 내부에서 발생하는 변경의 정도하나 바꾸려고 할 때, 모듈 전체를 바꿔야 되면 응집도가 높은 것. 하나의 변경이 일어날 때, 모듈 하나만 바꿔서 해결 가능하면, 응집도가 높은

9. 템플릿 메서드 패턴

템플릿 메서드 패턴템플릿 메서드 패턴은 특정 역할의 책임을 한 메서드에 여러 메서드를 조합*(이게 템플릿!)*으로 정해놓는 패턴이다. 템플릿 메서드를 구성하는 메서드들은 역할에 속하는 객체마다 다르게 구현될 수 있다. 활용 예시우리는 여러 DB에 연결해야 한다. 우리가 연결한 DB는 모두 다음과 같은 절차를 따른다고 하자.해당 DB드라이버 찾기 - DB에

객체지향의 역할, 책임, 협력

역할, 책임, 협력하나의 프로그램을 만들기 위해서는 다양한 객체가 자신의 로직을 실행해서 전체 기능을 완성한다. 중요한 건, 다양한 객체가 한 기능을 만들기 위해 메시지 를 주고 받으며 상호작용한다는 사실이다. 이처럼 어플리케이션의 기능을 완성하기 위해 여러 객체가 상호작용하는 것을 협력이라고 한다. 각 객체들이 수행하는 자신의 로직을 책임이라고 하고, 객

우아한테크코스 4기 프리코스 1주차 회고

우아한 테크코스 4기 프리코스 1주차1주차 문제 깃허브 링크https://github.com/woowacourse/java-baseball-precourse 문제 간단 요약우리가 흔히 아는 야구게임을 자바로 구현하는 게 1주차 문제다.세개의 수를 입력받고 해당 자릿수에 맞는 숫자를 입력한 경우 스트라이크 추가,자릿수는 맞지 않지만 맞는 숫자를 포함한 경우

자바 코딩 규칙(Java Code Conventions)

자바 소스 파일 구조시작 주석 package 문 import 문 Class 혹은 Interface 선언 시작 주석모든 소스 파일은 다음과 같은 시작 주석을 써줘야 한다. 123456789/* *클래스 이름 * *버전 정보 * *날짜 * *저작권 주의 */ package문 import문일반적으로 패키지문을 먼저 쓰고, 임포트문을 다음에 써준다. 두 문

스프링 부트의 특징

스프링 부트의 특징스프링 부트는 스프링의 복잡한 xml 간편화와 빠른 개발을 위해 등장했다.부트는 웹을 위해 필요한 필수 라이브러리를 내장하고 있다.(톰캣 등) 스타터(starter) : 특정 모듈을 사용할 수 있도록 필요한 라이브러리를 모아놓은 라이브러리 모음 자동설정(AutoConfiguration) : 추가된 라이브러리나 모듈을 사용할 수 있도록 자동

12. 링크 계층

a. 링크a-1. 링크 계층 소개 링크 계층(2계층) 프로토콜을 실행하는 장치를 노드라 함. 통신 경로상의 인접한 노드들을 연결하는 통신 채널은 링크 한 링크에서 전송 노드는 데이터그램을 링크 계층 프레임으로 캡슐화해서 링크로 전송한다. a-2. 링크 계층의 서비스 프레임화 : 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프래임에 캡슐화.