전체 글

싱글턴은 오직 한 번만 인스턴스화 할 수 있는 클래스를 의미합니다. 함수나 시스템 컴포넌트와 같이 설계상 유일하게 존재해야 하는 경우에 사용됩니다. 그러나 이러한 싱글턴 클래스는 테스트하기 어렵다는 단점이 있습니다. 인터페이스를 정의하고 이를 구현하는 방식으로 싱글턴을 사용하면, 싱글턴 인스턴스를 가짜로 대체하는 것이 불가능해집니다. 싱글턴을 만드는 방식은 보통 둘 중 하나입니다. 두 방식 모두 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단ㅇ으로 public static 멤버를 하나 마련해둡니다. public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } publi..
생성자와 정적 팩토리 메서드의 제약 생성자와 정적 팩토리 메서드에는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 제약이 있습니다. 점층적 생성자 패턴 각 생성자의 매개변수 개수를 다르게 만들어, 여러 개의 생성자를 만드는 방식입니다. public class NutritionFacts { private final int servingSize; // (ml, 1회 제공량) 필수 private final int servings; // (회, 총 n회 제공량) 필수 private final int calories; // (1회 제공량당) 필수 private final int fat; // (g/1회 제공량) 필수 private final int sodium; // (mg/1회 제공량) 필수 private..
1. 스프린트 회고란? 스프린트 회고는 애자일 팀이 완료된 스프린트 수행에서의 교훈을 정리하고 아이디어를 도출하여 팀 프로세스를 개선하기 위한 활동이에요. 즉, 개인과 팀의 지속적인 개선 활동이에요. 그리고 보통 스크럼 마스터가 스프린트 회고를 리딩 해요. 2. 스프린트 회고의 중요 사항 2주 스프린트의 경우 1시간 30분 이내로 제한되어 잘한 항목, 잘못한 항목, 개선할 항목을 확인해요. 1) 목표, 회고 형식 및 특정 질문 안내 (5~10분) 스프린트 회고의 목표는 팀이 수행할 수 있는 개선, 작은 개선, 지속적인 개선을 식별하고, 팀이 수행한 방법을 계획하여 작업효율을 개선하기 위하는 데 있어요. 팀원들에게 먼저 회고 목표를 설명하는 것이 좋아요. 회고 주제 안내 : 회고를 돌아보게 될 '프로젝트'..
회고란 무엇인가? 회고란 팀이 정해진 기간동안 해왔던 일들에 대해 돌아보면서 문제점이나 잘한 점을 찾아내어 다음작업에도 좋은 점은 계승하고, 아쉬웠던 점들은 다른 방식을 시도해 끊임없이 개선을 추구하는 것이에요. 반복적이고 점차적으로 가치를 높이는(애자일) 방법이라 할 수 있어요. 즉 회고는 변화의 촉매제 역할을 하며, 팀 전체의 학습이 되며, 새로운 행동을 유발해요. 회고는 단순히 활동의 새로운 개선점을 찾는 것뿐 아니라 프로젝트에 동참한 모든 일원들이 진지하게 사안에 대해 고찰하면서 한층 훌륭한 팀이 될 수 있도록 해줘요. 평가보다는 회고 일단 평가라는 말 자체가에서 주는 위압감(?!)이 있어요. 누군가에게 평가를 받는다는 것은 누구나 긴장이 되는데, 그렇기 때문에 문제에 개선점을 찾기보다는 뭔가 내..
취업 준비 및 프로젝트를 진행하며 Git을 적극적으로 활용했습니다. 본인의 경우 초반에는 프론트앤드 지인(친구)과 함께 프로젝트를 진행하다 보니 커뮤니케이션이 너무 원활했습니다. 그렇게 진행하다 보니 협업에서는? 어떻게? 진행할까 궁금해서, 인프런에서 프로젝트 및 스터디 게시글을 올려 백앤드, 프론트앤드, 디자이너를 영입해서 진행했습니다. 프로젝트 팀장 및 백앤드를 담당하면서, 팀원과 어떻게 하면 커뮤니케이션 및 Git을 잘할 수 있을까 해서 이 글을 작성해 봤습니다. 그래서 이 글은 프로젝트 협업 관련해서 Git Pull Request를 보낼 때 매너 및 주의점에 대해 알아보겠습니다. 1. 코드 리뷰란? 코드 리뷰는 동료가 작성한 코드를 점검하고 피드백을 교환하는 과정입니다. 피드백을 교환화는 과정에서..
젠킨스란? 젠킨스는 오픈 소스 자동화 도구로, 지속적인 통합(CI)과 지속적인 배포(CD)를 지원합니다. 이를 통해 소프트웨어 개발 프로세스를 자동화하고, 빌드, 테스트 및 배포 등의 작업을 지속적으로 수행할 수 있습니다. 젠킨스는 빌드 및 테스트 프로세스를 자동화하고, 소스 코드 변경이 발생할 때마다 빌드 및 테스트 수행하고 이를 자동으로 통합합니다. 젠킨스의 동작 원리 소스 코드 변경 감지 젠킨스는 버전 관리 시스템(Git, SVN 등)과 연동하여, 소스 코드 변경을 감지합니다. 빌드 소스 코드 변경이 감지되면, 빌드를 수행합니다. 이때, 빌드 스크립트를 이용하면 소스 코드를 컴파일하고, 실행 가능한 형태로 변환합니다. 테스트 빌드가 완료되면, 테스트를 수행합니다. 이때, 자동화된 테스트를 수행하거나..
🔥해당 글은 프로젝트 팀원과 함께 프로젝트 퀄리티 및 더 나은 개발자가 되기 위하여 북 스터디를 진행하였습니다.<ul style="li..
✏️[모던 자바 인 액션, 전문가를 위한 자바 8, 9, 10 기법 가이드] 스터디 관련 책 내용을 정리한 글입니다. 📌 이 장의 내용 스칼라 소개 자바와 스칼라의 관계 스칼라의 함수와 자바의 함수 비교 클래스와 트레이트 이 장에서는 스칼라 언어를 소개하고, 자바와 비교하며 함수형 프로그래밍의 다양한 기능을 살펴봅니다. 스칼라에서는 자바에 비해 더 다양하고 심화된 함수형 기능을 제공하며, 간결하고 가독성이 좋은 코드를 구현할 수 있다는 점을 확인할 수 있습니다. 이를 위해 스칼라로 간단한 프로그램을 구현하고 컬렉션을 다루는 방법, 함수, 클로저, 커링 등을 살펴보고, 인터페이스와 디폴트 메서드의 기능을 담당하는 트레이트라는 기능도 살펴봅니다. 20.1 스칼라 소개 이 절에서는 스칼라의 특징을 간단한 "H..
✏️[모던 자바 인 액션, 전문가를 위한 자바 8, 9, 10 기법 가이드] 스터디 관련 책 내용을 정리한 글입니다. 📌 이 장의 내용 일급 시민, 고차원 함수, 커링, 부분 적용 영속 자료구조 자바 스트림을 일반화하는 게으른 평가와 게으른 리스트 패턴 매칭, 자바에서 패턴 매칭을 흉내 내는 방법 참조 투명성과 캐싱 이 장에서는 고급 함수형 프로그래밍 기법을 다룹니다. 이론적 지식뿐 아니라 실무에서 적용 가능한 기술을 배울 수 있습니다. 다루는 내용으로는 고차 함수, 커링, 영구 자료구조, 게으른 리스트, 패턴 매칭, 참조 투명성을 이용한 캐싱, 콤비네이터 등이 있습니다. 19.1 함수는 모든 곳에 존재한다 함수형 언어 프로그래머는 함수를 값으로 취급할 수 있음을 의미하는 일급 함수 개념을 폭넓게 사용합..
✏️[모던 자바 인 액션, 전문가를 위한 자바 8, 9, 10 기법 가이드] 스터디 관련 책 내용을 정리한 글입니다. 📌 이 장의 내용 왜 함수형 프로그래밍을 사용하는가? 함수형 프로그래밍은 어떻게 정의하는가? 선언형 프로그래밍과 참조 투명성 함수형 스타일의 자바 구현 가이드라인 반복과 재귀 이 장에서는 함수형 프로그래밍이란 무엇인지 설명하고, 함수형 프로그래밍의 개념과 관련 용어를 살펴본 후, 함수형 프로그래밍이 제공하는 이점인 부작용, 불변성, 선언형 프로그래밍, 참조 투명성, 자바 8에서 제공하는 기능 등을 설명합니다. 그리고 고차원 함수, 커링, 영속 데이터 구조체, 게으른 리스트, 패턴 패칭, 콤비네이터 등 함수형 프로그래밍의 기법을 자세히 살펴봅니다. 18.1 시스템 구현과 유지보수 이 절에서..
규니95
Gyunny