본문 바로가기

전체 글147

[JAVA] 코드 순서 1. 상수 2. 클래스 변수 3. 인스턴스 변수 4. 생성자 5. 팩토리 메서드 6. 일반 메서드 6-1. public - protected - private 순으로 작성하지만, 관련 있는 메서드 끼리는 함께 위치시키는 것이 좋음 (public A에서 호출하는 private B함수는 A다음에 위치) 7. getter, setter 8. toString, equals, hashCode 2022. 4. 3.
정적(static) 메소드 써도 될까? static JVM이 시작될 때 Method(static) 영역에 저장된다. 프로그램이 끝날 때까지 사라지지 않고 메모리에 남아있다(자바기준). 장점 속도가 빠르다. 반복적인 사용에 효율적이다. 단점 1. 객체지향에서 멀어진다. static : 객체지향보다 [절차지향]에 가까운 키워드다. C의 전역변수/함수와 성격이 비슷 객체의 생성/제거와 관계 없이 메모리에 남아있기 때문 객체의 생성주기와 관계가 없다 메시지 전달을 위반 객체지향의 특징인 다형성을 위반 2. 메모리 효율이 떨어질 수 있다. 런타임 중 동적으로 생성된 것들은 GC(Garbage Collection)의 대상이 된다. 반면, static 키워드가 붙은 메소드 등은 GC의 대상이 아니다. GC는 동적으로 할당된 메모리만을 대상하기 때문 sta.. 2022. 4. 2.
[우아한테크코스] 페어프로그래밍 Git 공통 fork (해당 Git에서) 내 브랜치만 클론 git clone -b asebn1 --single-branch 1단계 내 로컬 PC에서 페어프로그래밍 진행 브랜치 생성 git checkout -b step1 Code With 통해 진행 페어의 로컬 PC에서 페어프로그래밍 진행 후 페어의 깃 주소 remote git remote add zero pull, push git pull zero step1 git push origin step1 2단계 진행한 자신의 브랜치 삭제 git checkout asebn1(아이디) // 현재 step1이기에 바꿔준다. git branch -D step1(브랜치명) // 진행한 브랜치 삭제 통합(merge)한 woowacourse 저장소와 동기화 git remote a.. 2022. 4. 2.
54. null이 아닌, 빈 컬렉션이나 배열을 반환하자 예시) 사용하면 안되는 코드 private final List cheesesInStock = ...; public List getCheeses() { return cheesesInStock.isEmtpy() ? null : new ArrayList(cheesesInStock); } 매장 안의 모든 치즈 목록 반환, 재고가 없다면 null 반환. null을 반환한다면, 클라이언트는 이 null을 처리하는 코드를 추가로 작성해야 함. 코드가 복잡해진다. List cheeses = shop.getCheeses(); if (cheeses != null && cheeses.contains(Cheese.M\\\\ozzarell ... } 값을 반은 후 null값 체크를 다시 해주어야 함 절대 null을 반환하지 말.. 2022. 4. 1.
instanceof의 사용을 지양하자 instanceof 란? 우리는 종종 그림과 같이 부모를 상속해서 만들어진 자식 객체가 여러 타입인 경우에 특정 클래스가 맞는지 확인하기 위해 아래 코드와 같이 instanceof라는 메서드를 사용하곤 한다. 코드는 piece 객체가 Pawn라는 클래스 타입인지 확인하는 메서드이다. if (piece instanceof Pawn) { return; } 각 객체가 무엇인지 외부의 객체가 그 정보를 알게 된다. 캡슐화가 깨진다 유지보수, 확장에 불리하다. instanceof의 사용을 지양하라 사용시 : 개방-폐쇄원칙(OCP), 단일책임원칙(SRP) OCP : 확장에는 열려있고, 변화에는 닫혀있도록 해야한다. SRP : 한 클래스는 하나의 책임만 가져야 한다. 다형성을 이용하자! if (piece.isPawn.. 2022. 3. 30.
미션 코드로 Git잔디 심기 미션코드로 Git 잔디심기 새로운 repository 생성하기 - create a new repository **https://github.com/asebn1/woowacourse-lotto-mission.git** 새로운 remote 추가하기 (미션코드의 git bash) git remote add [remote name] [추가된 repository url] git remote add newRepo ** commit 기록 합치기 → final 브랜치에 통합 (step1, step2) git checkout step2 git checkout -b final git rebase step1 새로운 repository에 불러오기 git push [remote name] [src branch]:[dest br.. 2022. 3. 28.