본문 바로가기

학습로그10

[레벨3] Git 브랜치 전략 먼저 이 글에서 main 브랜치는 master 브랜치를 의미합니다! 'main 브랜치 == master 브랜치 ' 로 생각하고 글을 읽어주세요 :) Git-flow Git-flow는 빈센트 드리센(Bincent Driessen)이 2010년에 제안한 브랜치 전략 모델입니다. 우선 알아야 할 것은 빈센트 드리센도 2020년 3월 5일에 2010년에 작성한 글에 코멘트를 작성했습니다. 내용을 요약하면 10년이 지난 모델이고 웹 애플리케이션 같은 경우는 여러 버전의 소프트웨어로 관리될 필요가 없고 지속적으로 제공해도 문제가 되지 않으므로 복잡한 모델인 Git-flow 모델보다 Github-flow 같은 간단한 브랜치 전략 모델을 사용할 것을 추천하고 있습니다. Git-flow 에 대한 내용은 아래부터 시작하겠.. 2021. 8. 18.
[레벨2] 지하철 노선도 협업 미션 학습로그 [Spring] NamedParameterJdbcTemplate - 3 내용 JDBC 를 위한 템플릿 클래스 기존의 쿼리문 파라미터에 '?' 를 사용하는 대신 매개 변수명을 정해서 사용할 수 있습니다. public int countOfActorsByFirstName(String firstName) { String sql = "select count(*) from T_ACTOR where first_name = :first_name"; SqlParameterSource namedParameters = new MapSqlParameterSource("first_name", firstName); return this.namedParameterJdbcTemplate.queryForObject(sql, named.. 2021. 6. 23.
[레벨2] 지하철 노선도 경로조회 미션 학습로그 [CORS] Interceptor 사용시 CORS 이슈 - 3 내용 Interceptor 사용시 CORS 문제 발생 prefilght가 interceptor에 걸려서 토큰 검사를 진행하는것이 문제의 원인 -> 인터셉터에서 토큰이 유효하지 않으면 예외가 발생하도록 구현한것 prefilght의 Http Method 는 OPTIONS OPTIONS 메서드를 인터셉터에서 걸러주도록 구현해서 해결 [Spring-validation] Valid vs Validated - 3 내용 @Valid 애너테이션을 사용하면 바인딩 되는 값을 검증할 수 있음 @Valid 애너테이션을 사용 시 전체 필드(유효성 검사 애너테이션을 붙인)를 한번에 검사하여 유효성을 보장 해줌 -> 하지만 부분 검증이 필요할 경우 문제가 발생 @V.. 2021. 5. 21.
[레벨2] 지하철 노선도 관리 미션 학습로그 [Architecture] Request, Response DTO - 3 학습 내용 위의 피드백을 받고 고민을 시작 Request의 경우 단순하게 Service (Application Layer)에서 Presentation Layer의 DTO를 받는것도 상위레이어를 참조하는 것이라 생각하여 이와같이 코드를 구현 DTO 를 왜 쓰는가에 대한 원론적인 물음으로 들어가면 -> 도메인을 보호하기 위함 다시 코드를 보면 Controller -> Service 로 Request -> DTO 로 변환해서 보내주는것이 위의 목적에 부합하는가와 과연 장점이 있는가를 물어보면 대답은 NO 다만 Service 가 비지니스 로직을 가지는 구조이고 Service 가 Service 를 참조하는 설계라면? -> DTO 를 만들어주.. 2021. 5. 21.
[레벨2] 배포 미션 학습로그 [보안] bastion - 3 내용 보안을 한곳에 집중 시키기 위한 서버 예를들어 22번 포트가 뚫린다면 서비스에 심각한 문제 발생 22번 포트 접속을 bastion 서버에 오픈하고 보안을 bastion 서버에 집중시킴 새로 생성하는 인스턴스마다 해당 bastion으로 연결시키면 모든 서버가 동일한 수준의 보안을 손쉽게 가질 수 있음 2021. 5. 21.