본문 바로가기

Java44

[우아한테크코스 3기] 레벨 1 - 7주차 회고 한 주 명언 “Happiness is a direction, not a place.” – Sydney J. Harris - 행복은 어떠한 장소가 아닌 방향이다. 브라운조 데일리원들과 크루들이 생일축하를 해줘서 정말 행복한 한주였어요. 누군가 생일인 크루가 있다면, 받은 만큼 더 축하해주고 싶어요. 5Fs란? 1. Facts(한 것) 실제로 했던 일이나 겪었던 일의 사실을 적습니다. 2. Feelings(느낀 것) 일을 하거나 겪으면서 느꼈던 감정이나 느낌을 적습니다. 3. Findings(배운 것) 일을 하거나 겪으면서 새롭게 배운 점이나 알게 된 점을 적습니다. 4. Future Actions(할 것) 배운 점을 토태로 이후엔 어떻게 유지하고 개선할 것인지 적습니다. 5. Feedbacks(시간이 지난.. 2021. 4. 8.
[Java] abstract 클래스와 interface는 언제 사용할까? 용어정리 우선 간단히 용어를 살펴보기로 해요. abstract 클래스( 미완성 클래스 ) 추상메서드가 없거나, 하나 이상을 포함하는 클래스에요.(추상 메서드가 하나 이상 포함될 시, 클래스 앞에 abstract를 반드시 표기해야해요) 인스턴스화가 불가능 하지만, 서브 클래싱은 가능해요. abstract class Car { } class BumperCar extends Car { } public static void main(String[] args) { Car car = new Car(); // x Car car2 = new BumperCar(); // o } interface interface는 자바에서 한 단계 더 높은 추상화를 하기 위해 사용돼요. 추상 메소드와 상수, 디폴트 메소드로 이루어진 클.. 2021. 4. 4.
[우아한테크코스 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.