본문 바로가기

분류 전체보기151

[테스트 코드] JaCoCo을 통한 코드 커버리지 확인 '놓친 테스트 코드는 없을까?' 항상 고민하던 주제다. '분명 누군가 이것에 대한 해결책을 만들어뒀을텐데' 하는 마음에 검색해본 끝에 JaCoCo를 발견했다. 세팅 build.gradle에 추가만 해주면 된다. //build.gradle plugins { id 'jacoco' } test { finalizedBy jacocoTestReport } jacocoTestReport { dependsOn test } 리포트 확인 Gradle - test 한번 돌려주면 build폴더에 jacoco 폴더가 생겨있다. index.html 를 통해 리포트를 확인할 수 있다. index.html 코드까지 확인할 수 있다. 느낀 점 그동안 구현에 집중하느라 테스트코드 작성법에 대해 공부조차도 못했는데, 현재 21% Ins.. 2023. 11. 24.
[트러블 슈팅] github actions를 이용한 CD구현 도중 오류 (비공개 파일 포함해서 빌드하기, https) 1. 문제 발견 - Gradle Build 실패 yml 파일상 해당 부분을 살펴보면 이게다다. save-state라는 command를 찾을 수 없다. Warning은 경고니까 실제로는 동작에는 문제가 없을수도 있다고 생각했다. Error를 난 부분을 찾아보면 gradlew파일을 실행할 수 없다고 나온다. 해결 - 실행권한 부여 Actions를 위해 생성된 Ubuntu 환경에서 접근을 할 수 없는 걸 수도 있겠다 싶어서 실행 권한을 부여했다. Gradle 실행이 됐다! 2. 보완 - 변수명 재설정 구글링해온 파일을 맞게 수정해야 하는데 이 과정을 놓쳤다. Nov23이 아니라 어제 띄워둔 jar이 계속 실행중이었다. 스크립트 파일 변수명 지정이 제대로 되어있지 않았다. 스크립트대로면 spring-webapp.. 2023. 11. 23.
6일차(완독) - 객체지향 설계를 바라볼 관점의 추가 이 책을 통해 이후 객체지향 프로그래밍에 관련된 여러 갈래로 파생된 기법들, 방법론, 디자인 패턴 등을 접할때 바라볼 수 있는 관점을 하나 얻은 기분이다. '적절한 책임을 위한 적절한 객체들의 설계.' 읽고나서 처음 커피를 시키는 카페에서의 과정을 예시로 시작하여, 객체들의 협력으로 이루어져있는 설계, 협력을 위한 메시지 역할, 구현과 인터페이스의 구분 등을 거쳐 작은 시스템을 구성하는 흐름을 보여주기까지 7장에 걸쳐 나누어 설명하고 있다. 전체에 걸쳐 자주 반복되어 책을 덮은 지금에도 생각나는 구절은 아래와 같다. 객체의 상태보다 행동이 중요하다. 상태는 과거의 행동의 결과를 유추할 수 있게 해줄 뿐이다. 객체에 책임을 정하는 것이 아닌, 책임을 행할 적절한 객체를 고르는 것이다. 도메인 모델을 통해 .. 2023. 11. 21.
5일차(6장) - 기능을 담을 구조라는 재료 6장에서는 지도를 예시로 들며 시작한다. 구조를 바탕으로 시스템을 분할하는 객체지향의 또 다른 측면에 관해 설명하고 있다. 구조 성공적인 소프트웨어들이 지닌 공통적인 특징은 훌륭한 기능을 제공하는 동시에 사용자가 원하는 새로운 기능을 빠르고 안정적으로 추가할 수 있다는 것이다. 기능만 중요한 것이 아닌 안정적인 환경에 대한 중요성에 대해 다시 한번 생각하게 됐다. 게임개발도 최적화가 이루어지지 않으면 게임콘텐츠가 무색해질만큼 평가가 안좋아지는 것이 생각나는 구절. 도메인 모델이란 사용자가 프로그램을 사용하는 대상 영역에 관한 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태다. 도메인 모델이라는 개념이 나온다. 현실 객체와 소프트웨어 객체와의 차이를 분명히 언급하면서도 이는 은유를 통해 근본적으로 쉽.. 2023. 11. 20.
[트러블] 쿠키 인식 오류. (다른 도메인 쿠키 접근 불가) 문제발견 로컬환경에서는 react-cookie를 통해 해당 쿠키 값을 가져올 수 있었다. 배포하니 쿠키를 가져올 수 없다. 원인분석 다른 도메인의 쿠키에는 접근할 수 없다. 현재 프론트엔드는 github.io 도메인에 배포가 되어있다. 결과적으로 wooin-dev.github.io에서는 foohaha-~ 도메인인 쿠키에 접근할 수 없다. 직접 확인해보기 다른 도메인의 쿠키만 있는 경우 console.log( ) 해보아도 나오지 않는다. 도메인이 섞여있는 경우 careers.kakao.com 사이트에서 쿠키 접근하기 careers.kakao.com에서 서브도메인인 careers를 제외하고 kakao.com의 도메인인 쿠키에는 접근이 가능했다. + HttpOnly = true; 인 쿠키에도 접근이 불가능했다.. 2023. 11. 20.
4일차(5장) - 책임의 자율성이 객체지향 프로그래밍에 미치는 영향 5장을 읽은 직 후 책임, 협력, 자율성, 객체의 상태가 아닌 행동이 중요하다. 메시지가 먼저이고 그 다음 적절한 객체이다. 위와 같은 말들을 굉장히 집요할 정도로 반복하며 강조한다. 그만큼 객체지향을 바라보는 관점에서 중요한 부분인 듯 싶다. 객체라는 점이 아닌 객체를 잇는 화살표에 더 집중하라는 느낌. 인터페이스와 구현을 구분함으로써 각 객체들을 1장에서 출근길 카페의 주문과정에 비유한 이유를 더 알 듯 했다. 캐셔는 주문 프로그램을 이용해 주문을 받고 바리스타에게 또 다른 요청을 넘긴다. 캐셔는 바리스타에게 요청할 때 필요한 최소한의 정보만 알고 있어도 된다. 바리스타는 본인의 로스팅 기법을 본인의 기준에 맞게 적용해도 캐셔는 이를 상관하지 않고 관심도 갖지 않는다. 그리고 이러한 것들은 객체지향 .. 2023. 11. 18.