본문 바로가기

전체 글

[TIL] 사이드 프로젝트 1일 1. 개발 진행 상황 1) SA작성 https://www.notion.so/S-A-9c4604dc9c59495a8ec1686cc5b05575 Pet Meeting 프로젝트 S.A 0. 일정 www.notion.so 2) 프로젝트 기획 (주기능) 위치 기반으로 근처에 있는 함께 강아지와 산책하고 싶은 사람을 모집하고, 채팅을 통해 만난다. (부기능) 게시판에 반려동물 정보를 공유함(병원, 용품, 나눔 등등) 와이어 프레임 작성 중 3) ERD 작성 https://www.erdcloud.com/d/fBHRQeru3pqoMm6Wx 사이드프로젝트ERD Draw ERD with your team members. All states are shared in real time. And it's FREE. Databa.. 더보기
테스트 코드와 제이유닛(JUnit) 1. JUnit이란? 자바 프로그래밍 언어용 단위 테스트 프레임워크 2. JUnit 5 모듈 구성 1) JUnit 플랫폼: 테스팅 프레임 워크를 구동하기 위한 런처와 테스트 엔진을 위한 API 제공 2) JUnit 주피터(Jupiter): JUnit5를 위한 테스트 API와 실행 엔진을 제공 (api 모듈 / prams 모듈 / engine 모듈 포함) 3) JUnit 빈티지(Vintage): JUnit3, JUnit4로 작성된 테스트를 JUnit5 플랫폼에서 실행하기 위한 모듈 제공 * build.gradle 파일을 보면 JUnit 사용을 위한 환경설정이 이미 되어 있음 2. @Test 어노테이션 테스트로 사용할 클래스를 만들고 @Test 어노테이션을 메서드에 붙이면 됨 - 테스트 클래스명은 주로 접미.. 더보기
GitHub(깃허브) 연동하기(InteliJ(인텔리제이)) 1. 깃 허브 연동 1) 터미널에서 이름 설정 git config --global user.name "{Myname}" 2) 이메일 설정 git config --global user.email "{Myemail}" 3) 설정한 정보 확인 git config --list 2. 터미널로 원격 저장소(Remote Repository) 사용하기 // 원격 저장소 연동 git romote add origin https:{저장소url}.git // 연동 확인 git remote -v // 생성한 파일 모두 working tree에 추가 git add . // 현재 깃 상태 확인 git status // 추가한 파일 commit하기 git commit -m "{커밋 메시지}" // 원격 저장소에 commit리스트 업.. 더보기
GitHub(깃허브) Issue(이슈)와 milestones(마일스톤) 1. GitHub 기초 1) 용어 push: 로컬 리포지토리 -> 원격 리포지토리로 보내기 pull: 원격 리포지토리 -> 로컬 리포지토리로 가져오기 pull request: 제안 사항 보내는거 issue: 역할 할당(assign) + 프로젝트에서 해결해야하는 문제 -> 버그 신고, 기능 추가 등 개선 제안 ex. 이슈 등록, 이슈 맡을게요 이런 식 branch: 각자 맡은 작업 merge: branch 작업을 commit 하는 것 staging 혹은 add: 원하는 것만 commit commit: 현재 프로젝트 상태를 찰칵 사진 찍듯이 저장 하는 것 checkout: 작업할 브랜치로 바꾸는 것 .git폴더 안보임!!!ㅠㅠㅠㅠ 단축키 cmd+shift+. 하면 됨(소스트리에 뜨면 된거니까 ㄱㅊㄱㅊ) 소스.. 더보기
프로그래밍 케이스 스타일(Case Styles) 카멜/케밥/파스칼/스네이크 프로젝트 시작할 때 코드 컨벤션을 정하면서 여러가지 코딩 스타일이 있다는 것을 배웠다. 변수나 클래스 이름을 만들 때, 두개 이상의 단어를 조합하게 되는 경우 스타일에 따른 작성 방법이 있어서 대표적인 표기법 4가지를 정리해보려고 한다. 1. 카멜 케이스(camelCase) 낙타의 등에 있는 혹과 같은 모양이라 카멜 케이스로 불린다. 첫 단어는 소문자로 시작하고, 두번째 단어 시작은 대문자로 작성한다. 원문: Java Programming 카멜 케이스: javaProgramming 2. 케밥 케이스(Kebab-case) 케밥이 꼬챙이에 꽂힌 모습과 같은 모양이라 케밥 케이스로 불린다. 모든 단어는 소문자로 시작하고 단어와 단어 사이는 "-"(하이픈)으로 연결한다. 원문: Java Programming 케.. 더보기
Mock object를 이용한 단위 테스트 1. Mock object (가짜 객체)? 이상적으로, 각 테스트 케이스는 서로 분리되어야 한다. 이를 위해 가짜 객체(Mock object)를 생성하는 것도 좋은 방법이다. 2. Mock object 를 왜 사용할까? 분리 되기 어려운 클래스들을 각각 테스트 하기 위해 사용 Controller 클래스만 테스트 하기 위한 테스트 범위: Controller, Service, Repository Service 클래스만 테스트 하기 위한 테스트범위: Service, Repository Repository 클래스만 테스트 하기 위한 테스트 범위: Repository 3. Mock object 를 통한 분리 Mock object: 실제 객체와 동일한 클래스명, 함수명이 있는 실제 객체와 겉만 같은 객체 MockR.. 더보기
TDD (Test-Driven Development) 테스트 주도 개발 1. TDD (Test-Driven Development) 테스트 주도 개발의 의미 테스트가 개발을 주도해 나가는 것 2. TDD의 흐름 1) 기존 개발의 흐름(AS-IS) 설계 → 개발 → 테스트 (→ 설계 수정) 2) TDD의 흐름(TO-BE) 설계 → 테스트 (→설계 수정) → 개발 - 기능을 검증하는 테스트를 먼저 작성 - 작성한 테스트를 통과하지 못하면 테스트를 통과할 만큼만 코드 작성 - 테스트 통과 후 개선할 코드가 있으면 리팩토링 - 리팩토링 후 다시 테스트를 실행하여 기존 기능이 잘 되고 있는지 확인 필수 -> 위 과정을 반복하여 점진적으로 기능을 완성해 나가는 것이 TDD의 흐름 3) 레드(Red)-그린(Green)-리팩터(Refactor) - TDD 사이클을 레드-그린-리팩터로 부르기.. 더보기
Edge 케이스를 고려한 단위 테스트 다양한 Edge 케이스 고려해 보기 입력 가능한 모든 케이스를 고려해 보기 Edge 케이스 발견 후 처리방법 Edge 케이스에 대해 개발자가 독단적으로 방향을 결정하는 것보다는, 관련 담당자(들)과 협의 진행 후 결정합니다. 관련 담당자: 관련 개발팀, 기획자, 디자이너, QA 예를들면, 에러 발생으로 결정 정확한 에러문구 필요 (문구의 통일성, 글로벌 서비스의 경우 번역 고려) 부적절한 문구의 예: "헐.. 빈 문자열을 입력하시면 레알 멘붕!!" 빈 문자열 허용 DB 에는 빈 문자열 ("") UI 에 표시할 때는 "알 수 없음" 으로 표시 → 프론트엔드 개발 필요 빈 이미지 허용 UI 에 대체 이미지 표시 → 디자이너, 프론트엔드 개발 작업이 필요 Edge 케이스를 고려한 코드 수정 Edge 케이스 처.. 더보기