일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Jenkins
- docker
- 아키텍처
- REPLICATION
- Typesript
- Redis
- k8s
- TypeScript
- codepresso
- 코드프레소
- Elastic Load Balancing
- NoSQL
- ci/cd
- Auto Scaling Group
- ELB
- AWS
- kubernetes
- springboot
- ASG
- Today
- Total
목록전체 글 (26)
Study Note
도구를 사용하는 이유 멀리 떨어져 있어도 쉽게 공유가 가능하다. 검색 등을 이용하여 지난 이슈애 대한 내용 추적이 좋다. 업무 프로세스에 맞춰 플로 등을 커스터 마이징 할 수 있다. 다음과 같이 태스크 관리에 많은 효율성을 부여 하지만 중요한건 프로세스와 조직 문화 자체임을 인지해야 한다. 도구 선택시 고려 사항 워크플로 사용자 정의(Workflow Customization) [필수] 태스크는 처리과정에 따라 상태 값을 가진다. 상태 값의 변화는 일종의 흐름인 워크플로를 가진다. 워크플로는 개발 조직의 업무 프로세스에 맞추어서 다시 정의되기 때문에 워크플로를 커스터마이징해야 한다. 계층(Hierachy) [필수] 태스크의 종류별로 상하, 평행의 관계를 설정해야 한다. 일반적인 링크 기능은 연결성만 제공하..
요구 사항 저장 요구 사항이 지족성으로 변경된다. 변경된 요구 사항을 일관된 하나의 문서로 관리한다. 만약 그렇지 않고 워드, 파워포인트 같은 문서로 저장하면 요구 사항이 변경될때 마다 문서를 수정하고 재배포 해야한다. 그 과정에서 예전 문서의 요구 사항이 참조될수 있다. 온라인으로 문서를 저장해서 공유하면 일관된 하나의 문서로 관리된다. 공유 파일 저장소 / 마이크로소프트의 셰어포인트 / 위키 등등 그 중 위키 페이지 사용시의 장점이다. 요구사항이 변경 될때마다 최신 문서를 볼수 있다. 업데이트 내용에 대한 히스토리를 저장해 놓기 때문에 문서 변경 내용도 함깨 관리할 수 있다. 요구 사항 변경 협의 요구 사항이 변경될 경우 근거 자료인 회의록(Meeting Minutes)을 남겨야 한다. 회의록에서 나..
태스크란 상세 요구 사항을 구현하기 위해 디자인, 문서 작성, 코딩, 테스트 과정에서 발견된 버그들을 처리하는 행위를 태스크라고 한다. 태스크는 1~2일 단위로 처리할 수 있도록 분리한다. 요구사항 ~ 태스크까지 계층 구조를 갖는 연결성을 부여한다. 개발 프로세스에 맞는 태스크 종류를 정의한다. 태스크의 종류 작업 아이템 (Working Item) 디자인, 구현, 디버깅 작업등에 해당한다. 문서화 (Documentation) 산출물/매뉴얼을 작성하는 문서화 작업이다. 테스트 (Test) 태스크를 테스트한다. 코딩에서 테스트 작업, 문서화에선 리뷰를 통한 테스트 이다. 버그 (Bug) 테스트 과정에서 생긴 버그에 해당하며, 추적성을 부여하기 위해 서브 요구 사항과 연결한다. 우선순위 결정 보통 1달 주기의..
Netework Net + Work의 합성어이다. NetWork는 서로 연결해서 가지고 있는 정보를 결합하여 생산적인 가치를 만드는 일이다. ‘네트워킹을 한다 = 통신 한다.’ 라고 생각하면 된다. 또한 이런 통신을 위하여 지켜야 하는 약속들을 Protocol이라고 한다. VPN Virtual Private Network의 약자로 안정적이며 보안성 높은 통신 서비스이다. 여러 곳에 분산되어 있는 컴퓨터들을 연결하는 보안성 높은 사설 네트워크를 만들거나, 원격 접속 시 암호화 기술을 적용하는 서비스이다. AWS는 VPC와 VPC Gateway를 통해 On-pemise의 VPN 장비와 AWS 같의 VPN 연결이 가능하다. 때문에 보안성 높은 Hybrid Cloud 환경을 구현할 수 있다. VPC Virtua..
MyBatis에서 동적 쿼리를 만들어서 사용하듯이 JPA에서 동적 쿼리를 사용하기 위해서는 QueryDSL를 사용해야 한다. @Query는 project가 로딩되는 시점에서 파싱 되기 때문에 고정된 SQL만 사용할 수 있다. QueryDSL는 오픈소스로서 자바 코드로 작성된 일종의 JPQL( Java Persistence Query Language) 빌더이다. JPA, JDBC Lucene, Hibernate Search, MongoDB, 자바 컬렌션등을 지원한다. QueryDSL 설정하기 QueryDSL를 사용하기 위해 pom.xml에 다음과 같이 작성하여 라이브러리를 사용한다. 특정 버전을 사용하려면 을 추가하면 되지만 POM에서 이미 라이브러리의 버전을 명시되어 있기 때문에 없어도 된다. 라이브러리..
spring boot에서는 JPA 연동에 필요한 XML 설정을 자동으로 처리하는 JPA 스타터를 제공한다. project 생성 및 설정 eclipse에서 spring starter project로 project를 생성한다. project의 설정을 맞춘다. Dependencies 설정에서 이미지와 같이 5개의 설정을 선택한다. src/main/resources 밑의 application.properties 파일을 이미지와 같이 설정한다. DataSource Setting을 통해서 DBMS 접속을 위한 정보를 저장한다. JPA Setting을 통해서 JPA 설정을 한다. Loggin Setting을 통해 log 출력 level을 설정한다. 해당 표는 JPA Setting의 설정 내용이다. spring.jpa..
형식을 맞추는 목적 코드 형식은 의사소통의 일환이며 전문 개발자의 일차적인 의무이다. 기존 코드는 계속된 수정에 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 다시 말해 오늘 구현한 코드는 앞으로 바뀔 가능성이 매우 높으며 코드의 가독성은 앞으로 바뀔 코드의 품질에 영향을 미친다. 적절한 행 길이를 유지 위 이미지를 통해 500줄을 넘지 않으며 평균 200줄 정도의 파일로도 큰 시스템 구축이 가능하다는 것을 알 수 있다. 신문 기사처럼 작성하라 신문 기사가 처음에 “표제 -> 첫 문단 -> 세부 내용” 순으로 세세하게 작성하는 것처럼 소스 파일 첫 부분에 고차원 개념과 알고리즘을 설명하고, 아래로 내려갈수록 세세하게 묘사하여, 마지막에는 저차원 함수와 세부 내역을 보여준다. 개념은 빈 행으로 분..
다음과 같은 절차를 통해서 NoSQL의 데이터 모델링이 진행 된다. 도메인 모델 파악하기 데이터 출력 형태 디자인(쿼리 결과 디자인) 패턴을 이용한 데이터 모델링 최적화에 필요한 기능 리스팅 후보 NoSQL 선정과 테스트 데이터 모델을 선정한 NoSQL에 최정화 및 하드웨어 디자인 도메인 모델 파악하기 RDBMS든 NoSQL이든 먼저 도메인 모델을 파악해야 한다. 어떤 데이터 개체가 있고 데이터 개체 간의 관계가 어떻게 되는지를 파악한 후 ERD를 그린다. 해당 과정 없이 바로 어플리케이션 관점에서 접근하면 저장할 데이터에 대한 명확한 이해 없이 데이터 모델링을 하는 것이기 때문에 문제가 생길 수 있다. 간단한 블로그 시스템의 도메인 모델이다. 사용자 ID를 기반으로 블로그의 분류를 가진다. 분류별로 글..