본문 바로가기

전체 글71

[우아한테크코스 3기] 레벨 1 - 6주차 회고 한 주 명언 “상태패턴은 3년차 때 쯤 부터 하세요. 지금 여러분에겐 쓰레기라 생각하세요 - Pobi" 미션을 진행하며 상태패턴을 적용했습니다. 솔직히 상태패턴을 적용하면서 어렵다는 생각을 했는데, 포비의 상태패턴을 쓰지말라는 말을 통해 힘이 났습니다. 페어 프로그래밍을 진행하다 회고가 늦어졌습니다. 5Fs란? 1. Facts(한 것) 실제로 했던 일이나 겪었던 일의 사실을 적습니다. 2. Feelings(느낀 것) 일을 하거나 겪으면서 느꼈던 감정이나 느낌을 적습니다. 3. Findings(배운 것) 일을 하거나 겪으면서 새롭게 배운 점이나 알게 된 점을 적습니다. 4. Future Actions(할 것) 배운 점을 토태로 이후엔 어떻게 유지하고 개선할 것인지 적습니다. 5. Feedbacks(시간이 .. 2021. 3. 20.
[Java] 원시값 포장이란? 원시값 포장이라는 말이 모호해요. 우선 원시값 포장이라는 말이 어디서 나왔는지 확인해볼 필요가 있어요. 모든 원시값과 문자열을 포장하라 라는 말은 객체지향 체조 원칙에서 나온 말이에요. 원시값 포장이 왜 필요하죠? 원시값 포장은 Primitive Obsession Anti Pattern(도메인의 객체를 나타내기 위해 primitive타입을 쓰는 나쁜 습관)을 피하기 위해 필요해요. 즉, 원시값 포장은 원시 유형의 값(변수명)을 이용해 의미를 나타내지 않고, 의미있는 객체로 포장한다는 개념이라 볼 수 있어요. 아직 설명이 부족해요. 게임을 위한 배팅 금액을 아래와 같이 나타낼 수 있어요. public class Foo { private int bettingMoney; public void addMoney(.. 2021. 3. 15.
[Java] instanceof vs isInstance() instanceof과 isInstance()모두 객체의 클래스를 확인하는데 사용합니다. 하지만 클래스의 체크 시점이 정적(컴파일 타임)이냐 동적(런타임)이냐의 차이를 보입니다. 즉, instanceof는 컴파일타임에 타입 에러를 체크하고, isInstance()는 런타임에 타입 에러 체크를 합니다. isInstance() 사용 예 // Java program to demonstrate working of isInstance() // method public class Test { // This method tells us whether the object is an // instance of class whose name is passed as a // string 'c'. public static bo.. 2021. 3. 11.
[우아한테크코스 3기] 레벨 1 - 5주차 회고 한 주 명언 “The best way to predict your future is to create it - Peter Drucker" - 미래를 예측하는 가장 좋은 방법은 미래를 창조하는 것이다. 미래엔 지금보다 더 잘할 수 있을까? 생각하게 되는 한 주였습니다. 고민보다, 하루하루 차근차근 나아가는 것이 알 수 없는 미래를 예측하는 가장 쉬운 길이라 느껴집니다. 5Fs란? 1. Facts(한 것) 실제로 했던 일이나 겪었던 일의 사실을 적습니다. 2. Feelings(느낀 것) 일을 하거나 겪으면서 느꼈던 감정이나 느낌을 적습니다. 3. Findings(배운 것) 일을 하거나 겪으면서 새롭게 배운 점이나 알게 된 점을 적습니다. 4. Future Actions(할 것) 배운 점을 토태로 이후엔 어떻.. 2021. 3. 10.
[Java] 정적 팩토리 메서드 장단점과 사용시기 정적 팩토리 메소드의 특징 정적 팩토리 메소드의 장점은 곧 특징이 돼요. 크게 4가지의 장점이 있어요. 장점 이름이 있으므로 생성자에 비해 가독성이 좋다. 호출할 때마다 새로운 객체를 생성할 필요가 없다. 하위 자료형 객체를 반환할 수 있다. 형인자 자료형 객체를 만들 때 편리하다. 단점으로는 2가지가 있는데요. 단점 정적 팩토리 메서드만 있는 클래스라면, 생성자가 없으므로 하위 클래스를 못 만든다. 정적 팩토리 메서드는 다른 정적 메서드와 잘 구분되지 않는다. (문서만으로 확인하기 어려울 수 있음) 장, 단점을 알면, 이제 도대체 언제 써야하는지 알아야겠죠? 그전에 매번 헷갈리는 정적 팩토리 메소드의 네이밍 컨벤션을 조금 살펴보고 가야할거 같아요. 정적 팩토리 메소드 네이밍 컨벤션 from: 하나의 매.. 2021. 3. 10.
[Java] 상속은 캡슐화를 깨뜨린다? public class Car{ private final String name; Car(String name) { this.name = name; } public final String getName() { return name; } } public class Avante extends Car{ Avante(String name) { super(name); } public void print() { System.out.println(getName()); } } 현재와 같이 부모 객체(Car)의 멤버변수가 private이고 메서드가 public final로 되어있는 상태에서도, 상속때문에 캡슐화가 깨졌다고 볼 수 있는건가? → 그렇지않다.현재 부모객체의 것들을 자식객체가 변경하지 못한다 (final 메소드.. 2021. 3. 6.
[우아한테크코스 3기] 레벨 1 - 4주차 회고 한 주 명언 "if you want something new you have to stop doing something old - Peter Drucker" - 새로운 것을 원한다면 오래된 것을 그만둬야합니다. 코니라는 좋은 리뷰어를 만나. 지금까지 가지고 있던 습관들은 전체적으로 바꾸는 연습을 했던 헌 주였습니다. 가지고 있던 오래된 습관들을 버리는 것은 힘이 듭니다. 하지만 낡은 것들을 놓지 않는다면 새로운 것을 얻을 수 없습니다. 5Fs란? 1. Facts(한 것) 실제로 했던 일이나 겪었던 일의 사실을 적습니다. 2. Feelings(느낀 것) 일을 하거나 겪으면서 느꼈던 감정이나 느낌을 적습니다. 3. Findings(배운 것) 일을 하거나 겪으면서 새롭게 배운 점이나 알게 된 점을 적습니다. .. 2021. 3. 1.
[Java] 컬렉션 프레임워크(Collections Framework) [Java] 컬렉션 프레임워크(Collections Framework) 자료구조의 분류 자료구조 분류법은 많은 분류법이 있지만, 대표적으로 많이 분류되는 방법은 선형 자료구조(Linear Data Structure)과 비선형 자료구조(Nonlinear Data Structure)로 나눌 수 있습니다. 이러한 분류를 보통 '형태에 따른 자료구조'라고 보고, 각 자료구조에 알맞게 구체화 된 것들을 '구현된 자료구조'라고 합니다. 먼저 선형 자료구조(Linear Data Structure)에 대해 알아보면, 선형 자료구조는 쉽게 생각해서 데이터가 일렬로 연결된 형태라고 보면 됩니다.. 우리가 흔히 쓰는 int[] 배열같은 것이라 생각하면 됩니다.. 선형 자료구조는 대표적으로 리스트.. 2021. 2. 28.
[Live-Study] 상속 목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 더블 디스패치 추상 클래스 final 키워드 Object 클래스 이제야 반을 온 것 같습니다. (사실 아직 반도 안왔지만) 자주쓰는 상속의 개념인데 제대로 한번 정리해봣나 싶긴 합니다 ㅎㅎ 이번 기회에 자바의 상속에 대해 한번 제대로 알아보겠습니다. 자바 상속의 특징 상속(Inheritance) 부모가 소유하고 있는 재산의 일부를 자식이 물려받는 것을 생각해보면, 부모가 가진 것을 자식이 마음대로 쓰거나 그대로 쓰거나 선택할 수 잇습니다. 즉, 자식 클래스가 부모 클래스의 변수와 메소드를 물려 받아 쓰는 것입니다. 상속의 장.. 2021. 2. 25.