전체 글

개발 프로젝트에서 Git은 버전 관리를 위한 기본 도구로 자리 잡았습니다. 하지만 단순히 코드를 저장하는 것을 넘어서, 협업을 효율적으로 이끌어내는 구조를 만드는 것이 더 중요해졌습니다. 그 중심에는 바로 브랜치 전략이 있습니다. 작은 기능 하나를 추가할 때도, 버그를 고칠 때도, 심지어 배포를 준비할 때조차도 브랜치 전략이 잘 정리되어 있지 않다면 팀원 간의 충돌이 발생하거나, 예상치 못한 오류가 배포되는 상황이 생길 수 있습니다. 반대로, 명확한 브랜치 룰은 코드의 흐름을 정리하고, 안정적인 릴리즈를 가능하게 만들어줍니다. 이 글에서는 제가 프로젝트를 진행하면서 실제로 적용했던 Git 브랜치 전략에 대해 소개하고, 어떤 규칙을 정했으며 왜 그런 선택을 했는지에 대한 경험을 공유하려 합니다.  1. B..
· 일기
오늘도 똑같이 아침에 기상해서 운동을 했다항상 같은 문장으로 시작하네 어제 말했지만, 몸무게 앞자리가 바뀌면 치팅 데이를 할 거라고 했었다정말 놀랍게도 ㅋㅋ 오늘 앞자리가 바뀌었다. 인증 그래서 점심 맛난 걸 먹으려고 더 열심히 운동했다ㅎㅎ근데 막상 뭘 먹으려니 금액도 신경 쓰이고, 치팅 데이라고 갑자기 막 먹으면 확 쪄버릴 거 같아서...최대한 고민하다가... 그나마 고려해서..^^*합리화  KFC의 타워징거버거를 먹었다.탄단지 비율이 나름 훌륭한 완전식품이다.  벚꽃이 피고 있다.이번 주말이 아마 만개일 거 같아 여자친구랑 주말에 벚꽃 보러 가기로 했는데, 비 예보가 있다... 제발 비 오지 마라...    그리곤 집에 와서 씻고, 알고리즘 문제를 풀었다.코드트리 난이도 Hard 문제(소요시간 180..
· 일기
오늘도 똑같이 아침에 기상해서 운동을 했다.이제 슬슬 날이 따뜻해져서인지 운동을 하면 너무 덥다.... 또 똑같이 점심으로 닭가슴살을 먹고평상시라면 공부하러 학교를 갔을 텐데요즘 시험 기간이라 학교에 자리가 없다..! 그래서 오늘은 집에서 공부를 했다!그리고 저녁도 집에서 닭가슴살을 먹었다ㅎㅎ.... 몸무게 앞자리가 바뀌면 치팅 데이할 거다ㅎㅎ...약 세 달? 동안 5~6kg 정도 감량했고, 오늘 공복 몸무게 기준.. 0.5kg만 더 감량하면60kg대 진입이다ㅋㅋㅋ작년에도 인턴 하면서 운동도 못하고... 인턴 끝나고 엄청 먹어대서.. 약 8~9kg가 쪘었다ㅋㅋㅋ 얼른 정상화해 보자...  그리고 저녁을 먹고 또 공부하려는데.. 하루 종일 집에만 있어서 답답해서 동방을 갔다. 동방에 사람들이 많아서 좋았다..
협업 프로젝트를 진행하다 보면 불명확한 이슈 제목, 설명이 부족한 PR 등으로 인해 커뮤니케이션에 어려움을 겪는 경우가 많습니다. 특히 팀원이 많아질수록 코드뿐만 아니라 커뮤니케이션 방식에도 일관성이 필요합니다.이 글에서는 협업을 효율적으로 하기 위해 현재 제가 진행 중인 프로젝트 팀에서 사용 중인 Issue 및 Pull Request Template을 정리해 보았습니다.  1. Issue Template이슈는 협업 중 발생하는 할 일(To-do)을 기록하는 공간입니다.명확한 이슈 템플릿을 사용하면 다음과 같은 효과를 얻을 수 있습니다:어떤 작업을 해야 하는지 빠르게 이해할 수 있음작업 범위와 목적이 명확해짐중복 이슈를 방지할 수 있음 따라서 현재 저희 팀은 다음과 같은 이슈 템플릿을 사용하고 있습니다...
협업 프로젝트를 진행하다 보면 다양한 스타일의 커밋 메시지로 인해 커뮤니케이션에 어려움을 겪는 경우가 많습니다. 특히 팀원이 많아질수록 코드뿐만 아니라 커뮤니케이션 방식에도 일관성이 필요합니다.이 글에서는 협업을 효율적으로 하기 위해 현재 제가 진행 중인 프로젝트 팀에서 사용 중인 Commit Convention을 정리해 보았습니다. Commit Convention저희 팀의 커밋 컨벤션은 Conventional Commits를 참고하여 결정했습니다. [optional scope]: [optional body][optional footer(s)] Convetional Commits는 위와 같은 커멧 메시지 구조를 정의하고 있습니다. 저희 팀은 커밋 헤더만을 채택하고, optional한 body와 foote..
· 일기
오늘도 어김없이 아침에 기상해서 운동을 다녀왔다.운동 후 집에 와서 다를 것 없이 닭가슴살을 먹고 씻었다. 오늘은 일주일 중 가장 힘든 날이다.1시 30분부터 6시까지 연속으로 수업이 있기 때문이다.그나마 다행이라면 3~6은 졸업 프로젝트 수업인데, 보통 교수님께서 한 시간가량 일찍 끝내주신다. 수업이 끝나고, 저녁 시간 전까지 학교에서 공부를 하다가 집을 갈 생각이었다.그런데 학교에 있던 후배가 치킨 먹을 생각이 있냐고 물어봐서, 냉큼 알겠다고 했다.집 가서 닭가슴살이 너무 먹기 싫었다ㅋㅋㅋ..  그렇게 후배 3명과 함께 노랑 통닭으로 갔다.다들 배가 고파서인지 허겁지겁 먹었다ㅋㅋㅋ 먹으면서 이야기를 나눠보니, 나는 수업이 거의 없어서 시험도 교양 한 과목만 보는데, 후배들은 시험기간이라 정신이 없고 ..
프로세스란 무엇일까?프로세스란 용어에 대한 정의는 몇 가지 존재한다.1. 실행 중인 프로그램2. 처리기(프로세서)에 할당되고 실행될 수 있는 entity3. 명령어의 순차 실행, 현재 상태, 관련된 시스템 자원들의 집합으로 인해 특징지어지는 활성화 단위(a unit of activity)  Program vs Process1. 실행 중인 프로그램에 집중하자.대부분 프로그램이라는 단어에는 익숙하지만, 프로세스라는 단어는 낯설 것이다. 프로그램(Program)이란?프로그램은 디스크에 저장된 정적인 entity입니다.특정 작업을 수행하는 일련의 명령어들의 모음이다. 특정 문제를 해결하기 위해 처리 방법과 순서를 기술하여 컴퓨터에 입력되는 일련의 명령문 집합체이다. (출처 : 위키백과) 즉, 프로그램 그 자체는..
· 취업준비
대한민국 국민이라면 네이버를 모르는 사람은 아마 없을 것이다. 나의 경우는 어린 시절의 오락부터 시작해, 이메일, 카페, 블로그, 검색 등 현재 나의 대부분의 편의 서비스는 네이버에 의존하고 있다.그만큼, 개발자라는 꿈울 꾸는 나는 기술의 정점인 네이버라는 기업에 관심이 많았다. 작년 9월로 거슬러 올라가자. 나는 작년 9월부터 12월까지, 판교 소재의 한 기업에서 인턴으로 근무했다.개발자로서 인생 처음으로 해본 업무들과 책임감, 정말 훌륭하시고 감사했던 팀원분들 덕분에 정말 뜻깊은 4개월이었다. 그 당시, 나는 아직 학교에 자취를 하고 있었고 자취방에 계약 또한 남아있는 상황이었다. 그래서 판교 근처로 거주지를 옮길 수 없었다. 왜냐하면 기존 자취방 월세 50만 원에, 출퇴근이 수월한 위치에 아무리 싼..
이 글은 프로젝트를 진행하며 발생한 직렬화 과정에서 DTO boolean 변수의 is 접미사가 사라지는 문제를 해결하기 위해 고민한 과정을 적은 글입니다.   ❗️ 문제 상황 ❗️저희 팀은 백엔드에서 프런트엔드로 요청에 대한 성공 및 실패의 공통된 응답 형식을 반환하기 위해 `ApiResponse`라는 공통 응답 포맷을 개발하여 활용하고 있습니다.  - isSuccess : API 호출의 성공 여부를 true, false로 반환합니다.- message : API 호출과 관련된 메시지를 반환합니다. 호출 성공 시에는 "API 호출 성공"이라는 메시지로 고정되지만, 실패 시에는 상황에 맞는 다양한 메시지가 적용됩니다.- data : API 호출이 성공했다면, 프런트엔드에 반환해야 할 데이터들을 제너릭을 통해..
https://codegarden-farmjun.tistory.com/81 [JAVA] 생성자 대신 팩토리 메서드를 고려하라 전통적으로 클라이언트가 클래스의 인스턴스를 얻는 방법은 public 생성자이다. 하지만, 클래스는 생성자와 별도로 정적 팩토리 메서드(static factory method)를 제공할 수 있다. 정적 팩토리 메서드는 codegarden-farmjun.tistory.com 이전 글에서 생성자와 정적 팩토리 메서드에 대하여 알아봤다. 이전 글에서 언급하지는 않았지만 생성자와 정적 팩토리 메서드 모두 공통된 단점이 있다. 바로 선택적 매개변수의 개수가 많으면 대응하기 어렵다는 것이다. public class SubwaySandwich { // 필수 요소 private String nam..
팜준
코드가 자라나는 텃밭