분류 전체보기(93)
-
Git Flow에 대해 알아보자🤔
Git Flow Git Flow는 git을 효율적으로 프로젝트를 관리하고 배포하기 위한 전략이다. Git은 다음과 같은 과정을 거친다. 하지만 프로젝트의 규모가 커지고 협업하는 동료들이 많아진다면 저장소의 master branch만을 이용한는 것에서 이슈에 따라 다양한 branch를 통해 다양한 인원이 독립적으로 개발이 가능한 전략이 필요함!! #Git Flow Git Flow는 다양한 branch를 관리하고 통합하기 위한 전략 중 하나이다. 최근에는 Git Flow의 단점을 해소하기 위해 GitHub Flow, GitLab Flow 등 다양한 전략이 있지만 이 문서에는 가장 기본이 되는 Git Flow를 설명하고 여기에 필요한 기본적인 Git 명령어에 대해 알아보자!! #브랜치 전략 Git Flow의 ..
2021.08.10 -
이펙티브 자바 정리 1일차
생성자 대신 정적 팩터리 메서드를 고려하라 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 클래스는 클라이언트에 public 생성자 대신(혹은 생성자와 함께) 정적 팩토리 메서드를 제공할 수 있다. 장점 이름을 가질 수 있다. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. (이 능력은 반환할 객체의 클래스를 자유롭게 선택할 수 있게 하는 ' 엄청난 유연성을 가진다.') 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환 할 수 있다. (클라이언트는 팩터리가 건네주는 객체가 어느 클래스의 인스턴스인지 알 수도 없고 알 필요도 없다...
2021.08.02 -
[Mac OS] homebrew로 (npm, node, yarn) 설치할 때 발생하는 에러해결하기
zsh command not found yarn(node, npm) brew install yarn 설치 잘 되었어! 오케이 라는 생각과 이제 yarn -v 버전을 검색해볼까????두둥 ... OMG... 아니😢 저기요...? 저는 설치했고 아무런것도 안했다구요..? 왜 이러세요.. zsh command not found yarn 원인 일단 오피셜은 아닐수도 있습니다! 참고만 부탁드려요! Bash 쉘에서 설치된 nvm으로 node를 정상적으로 인식하지만 zsh 쉘에선 node를 인식하지 못한다고..? 합니다. (아니 그럼 왜 바꾼거아ㅑ.. 증말🤦♂️) 해결방법 저도 구글링을 하면서 여러가지의 방법을 시도해보고 bash 쉘로도 이동하면서 해봤지만 안되더라구요... 😢 아니..이게 무슨.. 자! 이제 궁금..
2021.07.29 -
@Mock객체를 사용해서 Page타입 객체 테스트코드 작성하기
Mock을 사용해서 Page타입 테스트 코드 작성하기 Page타입을 어떻게 테스트 코드를 짜야할까..? @Mock 객체는 빈 껍데기에 불과하기 때문에 @Mock객체에서 실행되는 메서드의 결과값을 미리 선언해둬야한다. → 이 부분 때문에 Page타입의 리턴값을 어떻게 미리 작성을 해야할까 라는 의문이 되었다...!!! 단위 테스트를 하고 싶은 곳은 어디인가 Service단에서 매개변수로 받은 데이터로 Repository에서 잘 데이터가 가공되서 넘어오는지를 검사하고 싶었다. devicePacketLogRepository.findAllByDeviceIdentityAndIdLessThanAndCreationDateTimeBetweenOrderByCreationDateTimeDesc(deviceIdentity,..
2021.07.29 -
팩토리메서드를 활용한 List → DTO
팩토리 메서드를 사용하여 엔티티 List → DTO List로 변환하기 일단 팩토리 메서드가 모야? 간단히 말하면 객체 생성을 대신 수행해주는 공장이라고 생각하면 된다. 객체는 직접 생성하는 경우가 있고 팩토리 메서드패턴의 역할처럼 간접적으로 객체 생성 후 반환해주는 방식으로 생각해 볼 수 있다. 팩토리 메서드의 장/단점 생성 할 클래스를 미리 알지 못해도 팩토리 클래스가 객체 생성 담당 객체의 자료형이 하위 클래스에 의해서 결정 → 확장 용이성 동일한 형태로 프로그래밍 가능 확장성 있는 전체 프로젝트 구성 가능 객체가 늘어날 때 마다 하위 클래스 재정의로 인한 불필요한 많은 클래스 생성 가능성 팩토리 메서드 구조 Shap.java public interface Shape { void draw(); } ..
2021.07.29 -
자바 리플렉션[Reflection] 이란??
리플렉션(Reflection)이란?? 리플렉션은 구체적인 클래스 타입을 알지 못해서 그 클래스의 메소드와 타입 그리고 변수들을 접근할 수 있도록 해주는 자바 API입니다. 과연 내가 작성한 코드인데 모르는게 말이 되나? 라는 의문이 생길지도 모른다... 하지만 가끔 어떤 타입의 클래스나 변수 혹은 메서드를 사용할지 모르는 경우가 생깁니다. 클래스 정보 조회 리플렉션의 시작은 Class Class 에 접근하는 방법 모든 클래스를 로딩 한 다음 Class 의 인스턴스가 생긴다. "타입.class"로 접근할 수 있다. 모든 인스턴스는 getClass() 메서드를 가지고 있다. "인스턴스.getClass()"로 접근할 수 있다. 클래스를 문자열로 읽어오는 방법 Class.forName("~") 클래스패스에 해당..
2021.07.14