기타18 조편성 TechSpec과 테스트케이스 요약 (Summary)가장 먼저 테크 스펙을 세 줄 내외로 정리합니다. 테크 스펙의 제안 전체에 대해 누가/무엇을/언제/어디서/왜를 간략하면서도 명확하게 적습니다.조편성이란누가/무엇을 : 조편성이란 월부에서 함께 수강하는 사람들끼리 부동산 학습을 위해 짝 지어준 스터디 그룹을 말합니다. 조편성 프로그램은 이를 위해, 어드민 관리자 (CM분들)가 조 편성을 하기 위해, 설문 등록부터 조장/운영진 선발, 조원 배치, 노출확정 등의 기능을 제공합니다.언제/어디서 : 정규강의 신청과 설문 응답이 마감된 이후, 어드민 페이지에서 진행합니다.왜 : 월간 10,000명 부동산 강의 수강생들의 조장/조원 희망 여부 및 희망 지역(오프라인 임장지역) 응답에 따라, 수기로 팀 배정하였습니다. 2000명의 조편성 인원을 조.. 기타 2024. 12. 24. [기타] Tech Spec으로 프로젝트 성공 확률 높이기 서론 (들어가기 앞서) 입사한 지 한 달 만에, 저는 팀 내에서 중요한 역할을 맡아 어드민 내 복잡한 시스템 설계를 진행해야 했습니다. 새롭게 도입될 기능은 운영 부서와 협업이 긴밀하게 필요한 고도화된 서비스였고, 요구사항도 다양했습니다. 처음에는 정리된 요구사항을 설계로 연결하는 과정이 막막하게 느껴졌습니다. 제한된 시간 안에 방향성과 기술적 결정을 명확히 해야 했지만, 어디서부터 시작해야 할지 고민이 컸습니다. 타 Tech 회사에서 일하는 방식을 벤치마킹 하려 찾아보던 과정에서 뱅크샐러드의 Tech Spec 관련 블로그 글을 접하게 되었고, 이를 통해 명확한 문서화를 통한 설계 접근법이 효과적일 것이라는 확신을 가지게 되었습니다. Tech Spec (기술명세서) 란 뱅크샐러드에서 시작된 설계 프로세스.. 기타 2024. 11. 10. [리팩토링 2판] Chapter 6 기본적인 리팩터링 기본적인 리팩토링이제부터 리팩토링의 기법들을 하나씩 소개할건데 가장 기본적이고 많이 사용하는 리팩토링부터 배워보자. 이 책에서 가장 추천하는 리팩토링 기법은 함수 추출하기 (6.1절) 과 변수 추출하기 (6.3절) 이다. 리팩토릭은 원래 코드를 변경하는 작업인 만큼 이 두 리팩토링을 반대로 변경하는 기법도 있다. 함수 인라인하기 (6.2절) 과 변수 인라인하기 (6.4절) 도 자주 사용한다.추출 한다는 건 결국 이름짓기 이다. 코드 이해도가 높아지다 보면 이름을 바꿔야 할 때가 많다.함수 선언 바꾸기 (6.5절) 는 함수의 이름을 변경할 때, 함수의 인수를 추가하거나 제거할 때 많이 쓰인다. 바꿀 대상이 변수라면 변수 이름 바꾸기 (6.7절) 기법을 사용하고 이는 변수 캡슐화하기 (6.8절) 과 관련이 .. 기타 2024. 8. 26. [리팩토링 2판] Chapter 3 코드에서 나는 악취 냄새 나면 당장 갈아라. (켄트 백 할머님의 육아 원칙)이제 리팩토링을 어떻게 작동하는지 감이 왔을 것이다. 하지만 리팩토링 적용 방법을 아는 것과 제때 적용할 줄 아는 것은 다르다. 리팩토링을 언제 시작하고 언제 끝내는 지를 아는 것도 매우 중요하다.여기서 딜레마는 리팩토링의 기법 중 인스턴스 변수를 삭제하고 상속 계층을 만드는 것을 설명하기는 쉽지만 이런 일들을 언제 적용 하는지 에 대한 명확한 규칙은 없다. 나 같은 경우는 프로그래밍의 미학이라는 애매모호한 개념에 기대서 이유를 설명하는 경우가 많은데 이도 적합 하지는 않다.그러므로 구체적인 적용 시점에 대해 논의를 해보자. 이 책의 초판을 집필히면서 켄트 백을 만나러 갔었는데 그 당시의 켄트 백은 갓 태어난 딸을 돌보고 있었다. 딸의 기저귀 냄새에.. 기타 2024. 8. 12. [리팩토링 2판] Chapter 2 리팩터링 원칙 TL:DR;리팩토링의 본질을 잊지말자. 리팩토링은 개발 기간을 단축하고자 하는 것이다.리팩토링의 동력은 경제적인 효과를 늘 생각하자.리팩터링 정의리팩터링의 정의[명사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 기법[동사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법을 적용해서 소프트웨어를 재구성하다.리팩터링과 재구성누군가 “리팩터링하다가 코드가 깨져서 며칠이나 고생했다”라고 한다면, 십중팔구 리팩터링한 것이 아니다. 이는 기존 동작이 보존되지 않았기 때문이다.코드베이스를 정리하거나 구조를 바꾸는 모든 작업을 재구성이라는 포괄적인 용어로 표현하고, 리팩터링은 재구성 중 특수한 한 형태로 본다.한 번에 바꿀 수 있는 작업을.. 기타 2024. 8. 12. [리팩토링 2판] Chapter 1 리팩토링: 예시 (리팩토링의 리듬) Chapter 1. 리팩터링: 첫 번째 예시TL:DR;리팩토링의 첫번째 단계는 기존 로직에 대한 테스트 코드를 작성하는 것이다. 그리고 단계별로 리팩토링할 때마다, 다시 실행하여 테스트가 깨지지 않는지 확인한다.리팩토링을 효과적으로 하는 핵심은, 단계를 잘게 나눠야 더 빠르게 처리할 수 있고, 코드는 절대 깨지지 않으며, 이러한 작은 단계들이 모여서 상당히 큰 변화를 이룰 수 있다는 사실을 깨닫는 것이다.좋은 코드를 가늠하는 확실한 방법은 얼마나 수정하기 쉬운가다. 코드를 수정하기 쉬운 정도야말로 좋은 코드를 가늠하는 확실한 방법이라고 믿는다. 코드는 명확해야 한다. 코드를 수정해야 할 상황에, 고쳐야 할 곳을 쉽게 찾을 수 있고 오류 없이 빠르게 수정할 수 있어야 한다. 건강한 코드베이스는 생산성을 극.. 기타 2024. 8. 5. [기타] Mac에서 CLI로 IntelliJ 실행하는 법 순서 /usr/local/bin/idea 파일 생성한다. 해당 파일에 대한 쓰기 권한을 부여한다. chomod 777 /usr/local/bin/idea chomod 777 을 입력하여, 모든 사용자에 대해 r/w/x (읽기, 쓰기, 실행)이 가능하도록 허용한다. 해당 파일에 아래와 같이 내용을 수정 후 저장한다. open -na "IntelliJ IDEA.app" 실행하려는 디렉토리로 이동한다. 잘 수행 되는지 실행해본다. idea . 잘된다. 레퍼런스 https://www.jetbrains.com/help/idea/2023.3/working-with-the-ide-features-from-command-line.html#toolbox 기타 2024. 2. 24. [기타] SpringBoot 환경에서 Swagger 3.0을 적용하는 방법 오늘은 SpringBoot 환경에서 Swagger를 적용하는 방법에 관해서 알아보도록 하겠습니다. 정의 Swagger란 개발자가 REST 웹 서비스를 설계, 빌드, 테스트, 문서화하는 일을 도와주는 오픈 소스 소프트웨어 프레임워크입니다. Spring Boot 3.0 이상 버젼에서는? Spring Boot 3 부터는 별도의 설정 없이, 아래 의존성만 추가해주면 자동으로 설정이 완료됩니다. 설치 후, 서버 구동한 뒤, [URL]/swagger-ui/index.html에서 확인 가능합니다. implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' Spring Boot 3.0 이하 버젼에서는? (Gradle) Swagger 3.0 기준으로.. 기타 2023. 12. 2. [GIT] GIT을 통해 버젼관리를 하는 방법 - 혼자 작업하기 편 서론 오늘은 GIT을 통해 버젼관리를 하는 방법에 관해, 혼자 작업하는 상황을 가정하고 설명하겠습니다. 버젼관리 (변경사항 등록 및 삭제) Local Repository는 working directory, staging area, repository 이렇게 3개의 트리로 구성됩니다. working directory : 로컬 레포지토리 등록이 되면 자동으로 변경사항이 추적되며, 그 내용은 이곳에 기록되는 곳을 말합니다. staging area : 버전관리를 하고 싶은 파일/폴더들을 보관하는 곳입니다. repository : 버젼관리 등록이 된 파일/폴더들을 보관하는 곳입니다. 기본 사용 방법 git init 작업 중인 폴더에서 git을 사용할 수 있도록 해줍니다. git add [파일명] 폴더 내의 모든 .. 기타 2022. 12. 3. VSCode 자주 쓰는 단축키 정리 자주 쓰는 단축키 활용 반복되는 코드 지정하기 하나씩 지정 : CMD(CTRL) + D 한번에 지정 : CMD + Shift + L 변수명/함수명 한번에 바꾸기 Mac : Ctrl + F2 Windows : F2 코드 위/아래로 복사하기 : opt + Shift + ↑,↓ 여러 곳에 커서를 두고 수정하기 : opt(Alt) + 마우스클릭 코드 맨 마지막에 커서 두기 : Shift + opt(Alt) + I 사이드바 숨김/보이기 : CMD(Ctrl) + B 이전커서로 이동 : CMD(CTRL) + U 함수/변수 따로 빼기 : CMD(Ctrl) + Shift + R 기타 2022. 10. 11. [기타] Homebrew 사용 방법에 관해서 알아보자 서론 오늘은 Mac에서 필수적으로 쓰이는 Package manager인 brew를 활용해서 로컬 개발환경을 셋팅하는 방법에 관해서 알아보도록 하겠습니다. 오랜만에 블로그 포스팅인만큼 평소에 제가 자주 사용하는 패키지까지 모두 이야기 드리겠습니다! Homebrew 설치 방법 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 터미널에 해당 스크립트를 입력하시면 됩니다. 설치 패키지 설치 방법은 간단합니다. brew install [패키지명] 설치를 원하는 프로그램을 검색하시려면 해당 사이트에서 얼마든지 검색하실 수 있습니다. 개발 목적으로 nodejs, php, java(openjdk11.. 기타 2022. 10. 10. NPM과 NPX의 차이점에 대해 알아보자 서론 오늘은 비슷하지만 다른 역할을 하는 NPM과 NPX의 차이점에 관해서 알아보도록 하겠습니다. 본론 NPM이란 NPM이란 node.js 환경에서 사용되는 패키지 관리자입니다. 패키지 매니저(Package manager)는 패키지를 다루는 작업을 편리하고 안전하게 수행하기 위해 사용되는 툴이며, 라이브러리가 코드의 작성을 위해 사용되는 코드의 묶음이라면 패키지는 코드의 배포를 위해 사용되는 코드의 묶음입니다. 또한 많은 패키지들은 다른 패키지들이 설치되어야만 제대로 동작하는데, 기존 패키지를 제대로 동작시키기 위해 필요한 다른 패키지들을 dependency(의존성)라고 한다. 따라서 패키지를 사용하고자 할 때, 의존성을 갖는 다른 패키지들을 전부 설치해 줄 필요가 있다. 다만, 이는 패키지가 늘어갈 때.. 기타 2022. 4. 16. 이전 1 2 다음 반응형