프로젝트를 진행할 때, 주로 몇 명이서 작업을 하나요? 혼자만의 프로젝트를 진행할 수도 있겠지만, 대부분은 본인을 포함한 두 명이상으로 인원이 구성될 것입니다. 그리고 여러 명이 개발로 협업을 해야 할 경우, 대부분은 git을 사용하여 진행합니다. 브랜치를 통한 효율적인 협업을 진행할 수 있다는 것이 git을 사용하는 큰 이유입니다. 저도 이전 회사에서는 commit, push, pull 등의 아주 기본적인 명령어들 밖에 사용하지 않았지만, 이직을 한 뒤에는 초면인 git 명령어들을 많이 만나게 되었고 지금은 친해지려고 노력 중에 있습니다. 그들과 절친이 될 수 있게, 이번 포스팅에서는 협업할 때 쓰이는 여러 가지 Git 명령어들에 대해 알아보겠습니다. [stash & apply] commit을 사용하지..
덕토피아
백엔드 개발자라면 누구나 들어봤을 만한 개념, SOLID. 기술 면접을 위해 달달 외워보지만 개념도 어렵고 심지어는 긴 영어단어로 이루어져 있어서 이름 외우기도 힘듭니다. 저도 실제로 면접 질문으로 나온 적이 있었는데, 그때 이렇게 대답했습니다. "S가 단일 책임 이고, O가 아... L이 리스코프 치환 어쩌고였는데 생각이 나지 않네요...." 지금 생각하면 아찔한 답변이네요. 자주 나오는 빈출 질문이어서 외우기는 했는데 실제로 답변을 하려니까 머리가 새하얘 졌었습니다. 물론 이 질문 하나로 당락이 결정되지는 않겠지만 외우기 힘든 개념을 술술 말한다면 좋은 인상을 남길 수는 있겠죠. 같은 실수를 반복하지 않기 위해, 그리고 여러분은 저와 같은 실수를 범하지 않게 하기 위해 이번에는 SOLID 원칙에 대해..
Spring Boot 프로젝트를 빌드할 때, Maven과 Gradle 중 하나의 빌드 툴을 정하여 사용하게 됩니다. 만약, Gradle이라는 빌드 툴을 사용할 경우, build.gradle이라는 파일이 생기게 됩니다. 해당 파일에서는 gradle 빌드 작업에 필요한 여러 가지 옵션, 설정, 동작 등을 정의해주며 의존성 라이브러리 또한 관리해줍니다. 의존성을 관리해주는 dependency 프로퍼티는 굉장히 다양한 옵션을 가지고 있습니다. implementation, compileOnly, runtimeOnly,... 등. 일부 종속성은 소스 코드를 컴파일하는 데 사용되는 반면, 다른 종속성은 런타임에만 사용할 수 있어야 합니다. 이번 포스팅에서는 의존성 옵션들 각각의 특징에 대해 알아보겠습니다. Java의..
테이블과 매핑되는 엔티티를 정의할 때는 Id 값이 필수로 들어갑니다. 우리는 주로 Long 타입으로 정의를 하곤 합니다. 근데 왜 Wrapper 타입인 Long을 사용하는 걸까요? Primitive 타입인 long 도 있는데, 이것을 사용하면 안 되는 걸까요? 분명히 어떤 이유가 있을 겁니다. 그러려면 우선 Primitive와 Wrapper의 차이점 부터 알아보아야겠습니다. Primitive Type vs. Reference Type 우선 자바의 변수 타입에는 기본형(Primitive Type)과 참조형(Reference Type)이 있습니다. int age = 3; // 기본형 Point p1 = new Point(5, 4);// 참조형 두 개의 차이점은, 기본형은 변수의 값을 그대로 저장하지만 참조형..
오늘은 글또 7기에 참가하면서 다짐하는 글을 작성해보려 합니다. 글또가 무엇인지, 글또에 지원한 동기와 작성하고 싶은 글의 주제에 대해, 그리고 글또 7기를 마치며 얻게 될 것은 어떤 게 있을지 살펴봅시다. 글또란? 글또란 '글 쓰는 또라이가 세상을 바꾼다'의 줄임말로 글을 쓰는 개발자 모임입니다. 더 자세하게는, 글을 작성하는 개발 직군들이 모여서 서로 선한 영향력을 주고받으며 성장할 수 있는 커뮤니티입니다. 기수별로 운영 중이며, 현재는 7기가 시작되었습니다. 5월부터 시작했으니 아마 10월 말, 11월 초에 7기가 끝나지 않을까 싶습니다. 자세한 정보는 아래 노션 페이지에서 확인할 수 있습니다. https://www.notion.so/zzsza/ac5b18a482fb4df497d4e8257ad4d5..
드디어 그날이 오고야 말았습니다. CMC 9기 대미의 마지막 날을 장식하는 데모데이! 공덕역 근처에서 진행되었고 기업 관계자들, 일반 참가자들 등 생각보다 많은 분들이 찾아주셔서 꽤나 놀랐습니다. 약 3개월 반 동안의 기나긴 여정을 끝내는 자리다 보니 시원섭섭한 기분도 들었습니다. 오늘은 CMC 9기 데모데이 후기를 남겨보겠습니다. 챌린저 입장 및 부스 준비 (09:00 ~ 10:00) CMC에서는 참가자들을 챌린저라고 부릅니다. 9시 반까지 모이기로 했으나 저희 팔레트 팀은 사전 준비 작업으로 인해 9시까지 모이기로 하였습니다. 사전 준비 작업은, 저희의 캐릭터 던던이의 스티커들을 자르는 작업입니다. 사실 돈을 더 추가하면 주문한 사이트에서 잘라져서 오긴 하지만, 노력과 시간이 얼마 안 걸릴 것이라 판..
1월 29일부터 30일까지 CMC 9기 오프라인 해커톤이 열렸습니다. 사실 처음에는 참가할 의사가 없었는데, 연휴 기간에 집에 있어봐자 가만히 있기만 할 것 같아서 뭐라도 해보자 하는 마음으로 참가 신청을 하게 되었습니다. 결과적으로는 좋은 선택이었다고 생각하고 있습니다. 그래서 오늘은 처음으로 해커톤에 참가하게 된 후기를 공유하고자 합니다. 시작하기에 앞서 해커톤이라 하면 무박으로 진행되는 행사라 체력도 많이 필요할테고, 어느 정도 실력도 있어야 하니 처음에는 참가를 주저하였습니다. 괜히 참가를 해서 같은 팀에게 민폐를 끼치면 어쩌나 하는 생각도 많이 들었습니다. 참가할까 말까 거듭 고민을 하다가 결국에는 CMC 9기 운영국장님에게 개인적으로 찾아가 실력이 많이 필요한지 여쭈어도 보았습니다. CMC에 ..
※ 틀린 정보가 있을 수 있으니 양해 바랍니다. 새로운 프로젝트를 시작하다 보면, 어떤 DBMS를 사용해야 할지 선택하는 순간이 옵니다. 본인에게 가장 익숙하고 쉬운 DBMS를 선택하는 것도 방법 중에 하나지만, 시작하는 프로젝트의 특징을 알고 그거에 맞는 DBMS를 선택하는 것이 프로젝트 진행에 있어서 효율적인 방법일 것입니다. 이번 포스트에서는 DBMS(Database Management System)의 종류와 특징을 알아봅시다. DBMS 분류 DBMS는 크게 RDBMS와 NoSQL로 나뉘어져 있습니다. RDBMS NoSQL 테이블 간 관계를 정의 Key-Value, Document, Wide Column, Graph 명확한 데이터 구조 보장 자유로운 데이터 구조를 가짐 정해진 스키마로 인해 데이터가..