- 모의 투자 시뮬레이션 제공
- 자신에게 맞는 자산 관리 방법 제공
- 초보자들이 주식에 대한 두려움을 줄이고, 주식에 대해 쉽게 배울 수 있는 서비스를 제공
- 국내, 해외, 가상화폐 등 다양한 종목을 제공하여 투자의 폭을 넓힘, 금융 상품과 주식에 대한 정보를 제공하여 자산 관리 방법을 제공
- 2023.08.21 ~ 2023.10.06
- 김수현 : 팀장, 인프라, 금융사전, 자유게시판, 모의투자
- 고예림 : 인프라, 채팅, 알림
- 이호찬 : 랭킹, 로그인/회원가입, 인증/권한
- 장진욱 : 기업 뉴스, 감정분석, 재무제표
- 권종률 : 로그인/회원가입, 랭킹, 자유게시판, 금융사전
- 정슬호 : 모의투자, 채팅, 알림
-
커밋 제목 첫 글자는 대문자로 작성하기
커밋 유형 의미 Feat 새로운 기능 추가 Fix 버그 수정 Docs 문서 수정 Style 코드 formatting, 세미콜론 누락, 코드 자체의 변경이 없는 경우 Refactor 코드 리팩토링 Test 테스트 코드, 리팩토링 테스트 코드 추가 Chore 패키지 매니저 수정, 그 외 기타 수정 ex) .gitignore Design CSS 등 사용자 UI 디자인 변경 Comment 필요한 주석 추가 및 변경 Rename 파일 또는 폴더 명을 수정하거나 옮기는 작업만인 경우 Remove 파일을 삭제하는 작업만 수행한 경우 !BREAKING CHANGE 커다란 API 변경의 경우 !HOTFIX 급하게 치명적인 버그를 고쳐야 하는 경우
- 커밋 유형 이후 제목과 본문은 한글로 작성하여 내용이 잘 전달될 수 있도록 할 것
- 본문에는 변경한 내용과 이유 설명 (어떻게보다는 무엇 & 왜를 설명)
<타입> : <제목>
내용
날짜 작성자
20230904 yeLim
-
브랜치 이름 규칙
작업종류/기능으로 브랜치 만들기- (지라 스토리 이슈 = 기능 명세서 소 분류 = 브랜치 1개)
- (지라 작업 이슈 = 커밋 1개)
design/FE-logoutfeat/BE-signupfix/FE-not-render-nav
-
해당 기능의 브랜치에 작업이 완료 되면 해당 브랜치를 원격 저장소에
push하고 git Lab 페이지에서merge request(source : 본인 기능 브랜치, target : master)(로컬에서 그냥mergeX)**merge request오픈 이벤트 발생 시 EC2에서 빌드, 배포 실행 ⇒ MM으로 결과 알림
-
merge request위 결과에 따라 승인 여부 결정, 필요한 경우 코드 리뷰 및 토의 -
merge request가 승인되면merge된 master브랜치에대하여 다시 EC2에서 빌드, 배포 실행 ⇒ MM으로 결과 알림- EC2에서 테스트 코드 실행 / 빌드(번들링 등의 파일 빌드) / 배포 진행 ⇒ 메신저로 결과 알림
-
머리 수락되면 merge된 develop 브랜치 기준으로 CI/CD 진행
master
feature-{서버 명}-{작업명}develop-front: fe 서버feature-front-login: fe서버에서 로그인 기능을 만드는 브랜치
develop-user: user 서버feature-user-login: 유저 서버에서 로그인 기능을 만드는 브랜치feature-user-joinfeature-user-mypage
develop-chatbot: 챗봇 서버feature-chatbot-crawling:
develop-news: 뉴스 서버feature-news-crawling
- 컴포넌트 생성은 rafce 스니펫을 사용하여 생성
const test = () => {
return <div>test</div>;
};
export default test;컴포넌트가 아닌 다른 파일은 export default 대신 export 사용
export const module = () => {
return 'module';
};
- 객체 타입 선언시 interface, 그외 type 사용, 타입은 파스칼 케이스 사용
interface Name {
name: string;
}
type Code = number | string;- props 타입을 해당 컴포넌트 상위에 선언(interface 사용)
interface TestPropsType = {
name: string;
};
const test = ({ name }: TestPropsType ) => {
return <div>test</div>;
};
export default test;- 기타 eslint 설정
"max-params": ["error", 4], // 메소드 파라미터는 최대 4개 이하
"max-depth": ["error", 3], // 들여쓰기 깊이는 최대 3칸
"quotes": ["error", "double"], // 문자열을 처리할 때는 쌍따옴표를 사용하도록 합니다.
"semi": ["error", "always"], // 문장이 종료될 때는 세미콜론을 붙여줍니다.
"arrow-parens": ["error", "always"], // 기본적으로 모든 함수를 화살표 함수 사용- (C) 삽입: insertXxxx
- (R) 읽기: findXxxx vs getXxxx
- (U) 수정: updateXxxx
- (D) 삭제: deleteXxxx
- Controller
- XxxxController
- 첫 url별로 세분화 하되, 첫 클래스명은 UrlController 형태를 따른다.
- Service
- XxxxService
- Repository
- XxxxRepository
- Entity
- XxxxEntity
- Dto
- XxxxDto
- Config
- 최상위 패키지 바로 아래에 config 패키지 생성
- controller
- dto
- entity
- exception
- repository
- service
- 여기서 발생하는 에러를 try-catch가 아니라 controllerAdvice에서 처리하도록
- DTO 루트 부모 객체를 상속받아 DTO 생성
class RootDTO{ // 가명
Long seq // pk
LocalDateTime createTime ; // 생성시간
LocalDateTime updateTime ; // 수정시간
LocalDateTime deleteTime ; // 삭제시간
public setCreateTime(){
// 현재시간을 createTime에 넣기
}
public setUpdateTime (){
// 수정 시간을 createTime에 넣기
}
public setDeleteTime (){
// 삭제 시간을 createTime에 넣기
}
}
// 만약 유저를 만들면
public User extends RootDTO{
}- 배포/개발 용 properties 파일 구분
- properties 파일 암호화 방식 찾기
- stream방식 주석 잘행



















