본문 바로가기

Gradle12

[만들면서 배우는 클린 아키텍처] Chapter10. 아키텍처 경계 강제하기 10. 아키텍처 경계 강제하기 1. 경계와 의존성 아키텍처의 경계와 '경계를 강제한다는 것'의 의미를 알아보자. 아키텍처의 경계를 강제한다는 것은 의존성이 올바른 방향을 향하도록 강제하는 것. 가장 안쪽 계층 도메인 엔티티 도메인 엔티티에 접근하는 애플리케이션 계층 유스케이스 구현 어댑터 인커밍 포트를 통해 서비스 접근 서비스 아웃고잉 포트를 통해 어댑터 접근 설정 계층 어댑터 & 서비스 객체 생성용 팩터리 포함 의존성 주입 매커니즘 제공 의존성은 항상 안쪽으로 향해야 한다. 2. 접근 제한자 package-private 제한자의 중요성 패키지를 통해 클래스들을 응집된 모듈로서 만들어준다. 패키지 바깥 서는 접근 불가. 모듈 진입용 클래스만 따로 public으로 만들면 된다. 경계간 외부로.. 2022. 11. 15.
DB 수정 & jpa 세팅 프로젝트의 전반적인 리팩터링을 다시 시작하며, 기존 mybatis를 이용했던 것을 그대로 옮겨왔다. 하지만 SQL Mapper를 이용한 설계 특성상 객체 지향적인 코드의 작성이 어려웠고, 또 기존 DB 설계의 문제도 있다는 것을 알게 되었다. DB의 전반적인 수정과 더불어, JPA를 이용해 다시 리팩터링을 해보기로 결정을 내렸다. 그 수정과정과 JPA 세팅 방법을 나열해보겠다. https://github.com/GroovyArea/My-ChickenBreast-Shop GitHub - GroovyArea/My-ChickenBreast-Shop: shop api with spring boot shop api with spring boot . Contribute to GroovyArea/My-ChickenB.. 2022. 8. 8.
스프링 부트 소나큐브(SonarQube) 적용 + PostgreSql 갈수록 쉽지 않다. 프로젝트를 만들어 가는 과정에서 코드를 작성하는 부분은 극히 일부 과정임을 깨달았다. 오히려 코드를 작성하는 시간이 더 그립다. 리팩터링과 기술 적용 및 버전 맞춤 수정에 시간을 더 쏟는 요즘이다. 클린 한 코드를 위해 손수 리팩터링을 할 수 있지만, 정적 코드 분석 도구란 것이 있다고 한다. 대표적으로 SonarQube를 많이 사용한다고 하는데 이를 적용해 보는 시간을 가졌다. 정말 오래 걸렸고, 정확하진 않을 수 있지만 나름대로 적용했던 과정을 정리해보겠다. (틀린 부분이 있으면 무한한 댓글 감사히 받겠습니다!) 이것이 완료된 후 AWS lightsales, ec2 적용 여부를 판단해보아야겠다. 정적 분석 도구 코드의 품질에 대해 고려할 때 필수적으로 사용하는 도구이다. 지속적인 .. 2022. 7. 5.
2022.04.27의 기록 ▶ 파트 1 (9시반 ~ 11시반) 1. 알고리즘 1문제 풀기 (배열, 스택, 큐를 이용해서 풀음) 2. 시간되면 DB 9.2.3 정리 ▶ 파트 2 (4시 ~ 12시) 1. 프로젝트 패키지 구성 고민 좀 해보자 2. DB 설계 (순차적으로 그리고 회고 작성) 3. mysql CH.9 4. 자기소개서 수정 2022. 4. 26.
2022.04.24의 기록 ▶ 해야할 일 1. Gradle test code 수정 2. mysql CH7. 데이터 암호화 정리, CH8. 인덱스 중간 3. Boot 프로젝트 구상 (점심 먹고 쏟아붇자) https://github.com/GroovyArea/Shop-with-SpringBoot/wiki 4. 알고리즘 1문제 ▷ 테스트 코드 문제 1 : gameCount()를 호출 할 때마다 예외가 발생됨 해결 : 제어문을 통해 해결 문제 2 : @ParameterizedTest 진행 시 파라미터를 메서드의 매개변수로 집어넣어주지 않아 테스트 코드 문제 발생 2022. 4. 24.
2022.04.23 의 기록 ▶ 계획 1. Gradle test 코드 수정 2. 스프링 PSA 추상화 정리 ▷ test code 문제 : 게임 카운트 증가 테스트 시 계속 테스트 실패 원인 : 디버깅 해봤더니 계속 default 걸려서 보니까 switch문 break 추가 안함.. > 카운트 값 자체를 비교하는게 아니라 증가 여부만 판단했다. ▷ 스프링 PSA 추상화 > 스프링 내부 구현 클래스들이 추상화 되어 있는 이유? > PSA와 연관이 있다. > 서비스를 추상화함으로써 개발자가 실제 구현부를 알지 못하더라도 해당 기능을 사용할 수 있게된다. 즉, 추상화 계층인 인터페이스 API 의 정보를 활용해 해당 서비스의 모든 기능을 이용하면 되는 것이다. > 추상화 계층을 사용해 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공하는 .. 2022. 4. 23.
2022.04.22의 기록 ▶ 파트 1 (10시 ~ 7시) 1. Gradle Test 코드 수정 (PrintGameResult, ComputerNumber 부분) 2. 자소서 수정 3. Boot project 구상 4. Spring MVC 내부 개념 정리 5. 알고리즘 1문제 (2문제) 6. mysql Ch5. 트랜잭션, CH6. 데이터 압축 7. 이펙티브 자바 아이템 1 정리 ▷ 알고리즘 문제 : 정수의 내림차순 정렬 import java.util.Arrays; class Solution { public long solution(long n) { long answer = 0; String number = String.valueOf(n); String stringNum = ""; char[] numArr = new char[num.. 2022. 4. 22.
2022.04.21의 기록 ▶ 파트 1 (1시 ~ 8시) 1. Gradle Test 코드 수정 (테스트 코드 목적에 맞게) 2. 노션 이력서 3. Boot Project Wiki 4. Spring MVC 내부 개념 정리 ▶ 파트 2 (9시 ~ 2시) 1. 알고리즘 1문제 (꽂혀서 4문제 품) 2. Mysql CH4. 아키텍쳐 ▷ 알고리즘 > 문제점 : 코드실행은 정상적인데 채점에서 실패한다. > 새로 알게 된 사실 : 문제를 풀 때 메모리와 걸리는 시간도 체크하는 것 같다.. > 문제 : 배열 중 제일 작은 수 제거하고 없다면 -1을 반환 > 내가 처음 푼 방식 : 배열은 인덱스를 지우는 방식이 없으므로 List로 만들어서 내림차순 정렬 후 제거하고 다시 오름차순으로 했다. 완전 절차지향식 > sort는 되도록 삼가하는 것이 좋덴.. 2022. 4. 21.
2022.04.20 의 기록 ▶ 오늘 하루 계획 파트 1 (11시 ~ 2시) 1. Gradle MVC 프로젝트 테스트 코드 리팩토링 2. Mysql 3단원 정리 파트 2 (3시 ~ 1시) 1. 스프링MVC 개념 정리 : 핸들러 추상클래스로 왜 이루어져 있는지 고민해보자 3개 2. 스프링부트 프로젝트 WIkI 정리 3. 노션 이력서 템플릿 및 초안 작성 4. 도커 2문서 5. 알고리즘 1문제 2022. 4. 20.
2022.04.18 오늘의 기록 ▶ 주간 정리 1. 테스트 코드 이슈 -> 테스트 코드를 처음 작성하다 보니 문제가 많았음 1) 라이브러리 관리 툴 (Gradle) -> 얘는 그래도 메이븐이랑 비슷해서 쉬움 2) 에너테이션 적용이 안되는 부분 -> 아무리 의존성을 추가해도 안 되는 부분은 버전이 업그레이드 되며 따로 모듈화가 된 부분이 많기도 하고, 따로 import 해줘야 하는 junit의 단점을 알게되었다.. 3) 테스트 코드는 클래스명 + Test 라고 이름 붙이면 됨.. 4) 작성 코드를 테스트코드에 넣지 말고 테스트를 하기 위한 코드를 작성하자. 2. 프로젝트 관련 이슈 (회고 작성하자) -> 작성 완료 3. 스프링 개념 정리 관련된 이슈 (작성 예정) 1) 프론트 컨트롤러 패턴이 구체적으로 무엇인지. 2) Bean Scope.. 2022. 4. 18.
2022.04.16 의 기록 ▶ 주말 계획 1. SpringMVC 완강 2. Gradle test 프로젝트 intellij로 깃 연동 3. 스프링 대답 못한 질문 정리 4. 자기소개서 손 보기 ▶ 오늘 할 일 1. SpringMVC 8,90퍼센트 2. 깃 허브 연동 3. 파이널 프로젝트 3차 수정본 war 파일 강사님께 메일 전송 4. 프로그래머스 3개 풀기 2022. 4. 16.
2022-04-13의 기록 ▶ 지난 3주 -> 마지막 팀프로젝트인 파이널 프로젝트를 뒤늦게 시작하게 되어 수료 후에 2주를 더하게 되었다. 하필 전주에 코로나 양성 판정이 나는 바람에 컨디션이 좋지 않아 더 늦게 끝낸 것이 내심 아쉽다. 프로젝트는 거의 마무리 단계이며 오늘이나 내일중으로 war 파일을 강사님께 보내드릴 생각이다. 서버에 배포 후 에러 잡기가 완료된 후, 프로젝트에 대한 디테일한 부분들을 회고로 따로 작성하겠다. 오늘부터는 그 동안 하지 못했던 공부를 다시 시작할 생각이다. -> 그 동안 프로젝트로 인해 정신이 없고 하필 최근부터 자가격리를 하게 되어 집밖돌이인 내가 집에만 있다 보니 육체와 정신이 지쳐서 블로그 관리를 하지 못했었는데, 어제 새벽 이후로 프로젝트 관련 모든 코딩을 완료(테스트도 완료)하게 되어 다.. 2022. 4. 13.
반응형