목록분류 전체보기 (74)
Dailelog

커맨드 패턴이란커맨드 패턴을 사용하면 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있습니다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있습니다.만능 리모컨여기 재미있는 리모컨이 있다고 가정해 보겠습니다. 이 리모컨에는 프로그래밍이 가능한 7개의 슬롯이 있고 각 슬롯에 원하는 제춤을 연결한 다음 옆에있는 버튼으로 조각할 수 있습니다. 그리고 7개의 슬롯마다 각각 ‘ON’ 버튼과 ‘OFF’ 버튼이 존재합니다. 그리고 마지막으로 ‘UNDO’ 버튼이 존재합니다. 우리는 이 리모컨을 여러 다양한 기기를 제어할 수 있는 만능리모컨으로 만들 예정입니다.위에 다이얼로그는 리모컨으로 제어해야하는 객체입니다. 클래스가 많은데 공통적인 인터페이스가 있..

너무 오랜만에 글을 작성하는 것 같습니다. 마지막으로 작성한 글이 테코레이터 패턴에 대한 글이었네요. 그동안 글쓰기가 뜸했던 이유는 우아한 테크코스 관련 일을 마무리하고 휴식을 취했기 때문입니다. 하지만 더 이상 쉬면 안 되겠다는 생각이 들어, 다시 공부 의지를 다짐하며 이렇게 글을 작성하게 되었습니다.우선, 기쁜 소식과 나쁜 소식이 있습니다. 기쁜 소식은 제가 우아한 테크코스 1차에 합격했다는 점입니다. 12월 9일에 1차 합격 이메일을 받게 되었습니다.그리고 12월 14일, 잠실에서 진행되는 최종 코딩 테스트에 참가할 기회를 얻게 되었습니다.문제는 이 준비 기간이 제 마지막 대학 기말고사 기간과 겹쳤다는 점입니다. 또한, 1차 결과 발표까지 한 달 가까이 기다리는 시간이 길게 느껴져서 그 기다림도 꽤..

팩토리 메소드 패턴이란?팩토리 메소드 패턴 (Factory Method Pattern) 에서는 객체를 생성할 때 필요한 인터페이스를 만듭니다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정합니다. 팩토리 메소드 패턴을 사용하면 클래스 인스턴스 만드는 일을 서브클래스에게 맡기게 됩니다.위에 내용은 헤드 퍼스트 디자인패턴에서 팩토리 메소드 패턴을 정의입니다. 책의 내용을 토대로 팩토리 메소드를 공부하면서 알게된 내용을 이야기 해보겠습니다.Simple Factory팩토리 패턴을 본격적으로 알아보기 전에 ‘간단한 팩토리’의 대해서 이야기 해보려고 합니다. 객체 생성을 전담하는 create…() 함수를 하나의 클래스에 모아놓는 방법 - simple factory Simple Factory 디자인 패턴은 아..

데코레이터 패턴(Decorator Pattern)이란?데코레이터는 장식하다, 꾸미다라는 뜻의 decorate에 er(or)을 붙인 말인데 장식하는 도구 정도로 설명할 수 있습니다.데코레이터 패턴(Decorator pattern)으로 객체에 추가 요소를 동적으로 더할 수 있습니다. 데코레이터를 사용하면 서브클래스를 만들 떄보다 훨씬 유연하게 기능을 확장할 수 있습니다.예제 개념 - 커피 전문점책에서는 예제를 커피전문점에서 커피를 주문을 예로 데코레이터 패턴을 설명하고 있습니다. 기본 아메리카노를 주문할 때 여러가지 옵션을 추가 함으로써 가격과 요소를 추가하는 등의 변화를 주는 프로그램을 제시하고 있습니다. 고객은 커피를 주문할 때 우유나 두유,모카등 추가하는 경우 추가된 요소에 따른 가격등 여러가지 정보가..

3주차 학습이번 주 미션 내용은 로또 프로그래밍입니다. 학습 목표클래스 생성 및 객체 협력을 통한 기능 구현단위 테스트를 통한 정확성 확보2주 차 공통 피드백 반영추가 요구사항함수/메서드 길이 15라인 이내로 제한단일 책임 원칙 준수Java Enum 활용UI 로직 제외한 기능에 대한 단위 테스트 작성주요 고민사항도메인과 모델의 차이 이해테스트 시 무한루프 방지Consol.readLine 에서 inputStream이 테스트 시 계속 열려있어 오류 발행하는 사항을 인지 함전체 구조 설계MVC 패턴을 사용할려고 했는데 각 객체들의 역할에 대한 명칭이 고민됨생성자 주입 방식오류 발생 시 재입력 처리발견된 문제점당첨 번호 범위 검증 누락요구사항 중 정렬 기능 미구현UnsupportedOperationExcepti..

이글은 10월 29일 화요일 작성하는 글입니다. 이번 주도 테스트 2개를 통과하였습니다. 하지만 저 스스로에게 아쉬움이 많은 한주 였습니다. 먼저 이번주에 제가 고민했던 것들에 대해서 이야기 해볼 생각입니다. 고민사항1. 경주에 참가하는 자동차 수와 시도 횟수 최대 값을 따로 설정 해줘야하는가? "기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다."라는 내용이 있어 최대 값을 설정 해주기 하였습니다. 2. InputView에서 readLine의 역할에 대한 고민public String readLine() { String readLine = Console.readLine(); String trim = readLine.trim(); if(trim.isEmpty()) { th..
프리코스 1주차가 끝나고 사람들과 코드리뷰를 나누었습니다. 제가 놓친 부분이나 몰랐던 부분을 타인에 시선에서 객관적으로 받아 들일 수 있는 좋은 기회 였습니다. static으로 정의한 이유질문 코드public class Calculator { private OutputView outputView; private InputView inputView; private Separator separator;코멘트추가로 취향(?)이지만 메서드 파라미터로 받으신 필드 값이 의도적으로 변경될 여지가 없다면 final키워드로 묶어보는게 어떨까요? 다른 개발자가 이 코드를 봤을때 final이 붙어 있으면 필드 변경에 좀 더 신중할 수 있을거 같습니다! (항상 소통의 문제로 의도치 않은 문제들이 발생하더라구..

이글은 10월 22일 화요일 11시에 작석하는 글입니다. 저는 방금 전공인 ai프로그래밍 수업 중간고사 시험을 치고 이글을 작성하고 있습니다. 지금 프리코스가 시작되고 1주일이 지났습니다. 저의 1주차 결과는 예제 테스트 2개중 2개다 통과하였습니다.코드나 요구사항에 대해서 글로 작성할 수 있는지 여부를 몰라서 프리코스를 진행할 때 제가 작성한 README.md와 1주차를 진행하면서 들었던 생각과 고민했던 사항들 그리고 그러한 고민 중 어떤 방식을 사용했는지에 대한 이야기를 할 생각입니다. README.md## 기능 구현 목록- [ ] 시작 문구 출력 기능- [ ] 커스텀 문자열 입력 시 구분자 추가 기능- [ ] 사용자로 부터 문자열 입력받기- [ ] 사용자로 부터 받은 문자열 숫자와 구분자로 나누는 ..
오늘은 이번에 진행하고 있는 우아한 테크 코스의 합류하기 위해 프리코스 1주차에 대한 이야기 할 생각입니다. 제가 기다리고 기다리던 프리코스에 참여하게 되었는데 앞으로 4주동안 매주 1개의 회고록을 글로 작성할 예정입니다. 진행하면서 들었던 생각과 고민사항과 잘했다고 생각한 점과 부족한점 등 다양한 생각을 기록으로 남겨 볼 생각입니다. 특히, 저의 의도에 집중하고자 합니다. "왜"라는 의문을 던지고 어떤의도를 가지고 했는지를 말이죠. 미션과 코드에 대해서는 제출을 완료하고 난 이후에 회고록으로 전달하겠습니다. 이번 여정에서 많은 것들을 얻을 수 있기를 기대하며 다음에 더 좋은 이야기로 만나겠습니다.

오늘은 블로그의 주인인 저 김동혁이란 사람의 이야기를 해볼 생각입니다. 블로그를 처음 개설하지 벌써 3년이 되었습니다. 글을 꾸준히 정기적으로 올리진 못하지만 공부했던 것들을 정리하기 위해 올리고 있습니다. 지금은 우아한테크코스에 합류하기 위해 자소서를 작성하다. 오랜 시간 몰입했던 경험과 도전에 대한 문항을 작성하기 위해 고민을 하다. 진솔하게 저의 이야기를 하기위해 이글을 작성하게 되었습니다. 우선 제가 태어나서 처음으로 목표를 가지고 몰입했던 경험을 이야기 해보고자 합니다. 저는 고등학교 2학년 때부터 게임 기획자라는 목표를 세웠습니다. 처음에는 부산의 마이스터고등학교에 합격했지만, 부모님의 반대로 인문계 고등학교에 진학하게 되었습니다. 창작에 대한 재능이 있다고 믿었기에 부모님의 반대에 불만이 컸..