오늘의 공부

오늘의 공부/기타

테스트 커버리지 100%를 달성해보자

Notion - 테스트 커버리지 100%를 달성해보자이번 글에서는 테스트 코드에 대해 섣불리 도전하지 못하는 분들을 위해 테스트 코드를 작성하는 방법과 JaCoCo 테스트 커버리지 100%를 달성해보는 내용을 정리해보려고 한다.계기필자도 이전까지 조금씩 테스트 코드를 살펴보거나 작성해본 적은 있어도 각 요소에 대해서 제대로 공부해보거나 모든 요소에 테스트를 작성해 본 적은 없었다.인프런 워밍업 클럽 2기 - 백엔드 프로젝트(Kotlin, Spring) / 후기 인프런 워밍업 클럽 2기 - 백엔드 프로젝트(Kotlin, Spring) / 후기Notion - 인프런 워밍업 클럽 2기 - 백엔드 프로젝트(Kotlin, Spring) / 후기이번에 인프런에서 진행되는 워밍업 클럽에 참여해보게 되었다.평소 사용해..

오늘의 공부/디자인 패턴

데코레이터 패턴과 프록시 패턴의 차이

이 글은 아래 두 글로 부터 이어집니다. https://ppusda.tistory.com/84 데코레이터 패턴 데코레이터 패턴 데코레이터 패턴은 기존 객체를 변경하지 않고 기능을 동적으로 추가하거나 확장할 수 있게 해주는 디자인 패턴이다. 데코레이터의 말 뜻대로 객체를 꾸며주는 역할을 한다고 ppusda.tistory.com https://ppusda.tistory.com/85 프록시 패턴 프록시 패턴 프록시 패턴은 특정 객체를 대리하여 작업을 처리하는 프록시 객체를 제공하여 로직의 흐름을 제어하기 위한 패턴이다. 클라이언트와 실제 객체를 중계해주는 대리자 역할을 한다 ppusda.tistory.com 한 번에 글을 보고 싶으신 분은 아래를 참고해주세요. Git - 데코레이터 패턴과 프록시 패턴의 차이 ..

오늘의 공부/디자인 패턴

프록시 패턴

이 글은 아래 두 글과 함께 보면 더 좋습니다. https://ppusda.tistory.com/84 데코레이터 패턴 데코레이터 패턴 데코레이터 패턴은 기존 객체를 변경하지 않고 기능을 동적으로 추가하거나 확장할 수 있게 해주는 디자인 패턴이다. 데코레이터의 말 뜻대로 객체를 꾸며주는 역할을 한다고 ppusda.tistory.com https://ppusda.tistory.com/86 데코레이터 패턴과 프록시 패턴의 차이 이 글은 아래 두 글로 부터 이어집니다. https://ppusda.tistory.com/84 데코레이터 패턴 데코레이터 패턴 데코레이터 패턴은 기존 객체를 변경하지 않고 기능을 동적으로 추가하거나 확장할 수 있게 해 ppusda.tistory.com 한 번에 글을 보고 싶으신 분은 아..

오늘의 공부/디자인 패턴

데코레이터 패턴

이 글은 아래 두 글과 함께보면 더 좋습니다. https://ppusda.tistory.com/85 프록시 패턴 프록시 패턴 프록시 패턴은 특정 객체를 대리하여 작업을 처리하는 프록시 객체를 제공하여 로직의 흐름을 제어하기 위한 패턴이다. 클라이언트와 실제 객체를 중계해주는 대리자 역할을 한다 ppusda.tistory.com https://ppusda.tistory.com/86 데코레이터 패턴과 프록시 패턴의 차이 이 글은 아래 두 글로 부터 이어집니다. https://ppusda.tistory.com/84 데코레이터 패턴 데코레이터 패턴 데코레이터 패턴은 기존 객체를 변경하지 않고 기능을 동적으로 추가하거나 확장할 수 있게 해 ppusda.tistory.com 한 번에 글을 보고 싶으신 분은 아래를 ..

오늘의 공부/기타

NCP 이용해보기!

Naver Cloud Platform 이번에 NCP를 사용해 볼 기회가 생겨 사용법에 대해서 기록해보려고 한다. NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 서버 생성 먼저 서버를 생성해보자. 로그인 후 콘솔로 들어오면 서버 탭으로 이동할 수 있다. 만들어 둔 서버가 있다면 서버목록을 확인할 수 있지만, 그게 아니라면 서버 생성화면이 나온다. 서버 이미지 선택 부팅 디스크 크기, 이미지 타입을 골라야한다. 기본 값인 50GB, OS를 선택했으며 서버 이미지는 CentOS 7.8..

오늘의 공부/기타

코드 리뷰 작성해보기

이번에 코드 리뷰를 해보면서 개인적으로 느낀 코드 리뷰 작성법에 대해서 정리해보려고 한다 코드 리뷰 코드 리뷰에서 가장 중요한 점은 상대방이 리뷰를 통해 고민하고 성장해나가거나 코드에 대한 자신감을 가질 수 있게 하는 것이라고 생각한다. 코드에서 아래와 같은 부분들을 중점적으로 보면 보다 더 쉽게 리뷰를 작성할 수 있을 것 같다. 기능이 정상 작동하지 않는 부분을 찾아라 이 부분은 가장 정석적인 리뷰가 될 수 있을 것 같다. 기능 요구사항을 만족하지 못하고, 예외사항이 제대로 처리되지 않는 부분이 있을 수 있다. 주로 도메인 부분에서 이런 부분을 찾을 수 있으며, 이런 부분을 찾아보면서 코드의 전체적인 흐름 구조를 파악할 수 있을 것이다. 구조가 어색하거나 개선이 필요한 부분을 찾아라 이 부분에서는 구조..

오늘의 공부/기타

else 예약어를 지양하자

이번 글에서는 else 예약어를 지양해야 하는 이유에 대해서 설명해보려고한다. If - else If - else는 프로그래밍에서 조건에 따라 다른 코드를 실행하도록 하는 조건문이다. 조건은 프로그래밍에 있어서 매우 중요한 요소이며, 이를 통해 우리는 여러 제약을 걸어 프로그램을 구현할 수 있다. 그런데 이런 구조에서 else를 지양하자니 무슨 말인 걸까? else를 지양하자? 이번에 코드리뷰를 받아보면서 else 예약어를 지양해야 한다는 말을 듣게되었다. 이유가 궁금해 찾아보았고, if -else 구조에서 else 예약어를 사용하게 되면 가독성과 유지보수성이 떨어진다는 말을 보게 되었다. 실제로 위와 같이 if - else가 반복되는 상황에는 보기 싫은 코드가 될 수 있겠으나 실제로 위와 같이 사용하는..

오늘의 공부/Git

이미 Push된 커밋 메시지 수정

이미 Push된 커밋 메시지 수정문제처음에 커밋을 할 때 메시지가 잘못됬다는 것을 깨달았다.이를 수정하기 위해서 인터넷을 뒤져보기 시작했다.해결git rebase HEAD~[불러오고 싶은 커밋메시지의 수] -i위 명령어를 통해서 커밋메시지를 변경할 수 있다고 한다.실제로 위처럼 커밋 메시지와 함께 이전 커밋을 불러올 수 있다.pick eeb456f Create README.md 이 부분 중 pick을 reword로 바꾸어서 변경하겠다고 표시한다. 참고로 vi 편집기이기 때문에 ‘i’를 눌러 삽입모드에 들어가 수정해야한다. 수정이 완료되면 esc를 누르고 :wq로 저장한다.이제 커밋 메시지를 작성할 차례이다.위와 같이 변경한 후 다시 저장을 위해 esc를 누르고 :wq를 한다.무언가가 변경되었다는 것을 확..

오늘의 공부/DB, SQL

서브쿼리 (이중SQL)

서브쿼리 (이중SQL) 이번 글에서는 서브 쿼리에 대해서 정리해보려고한다. 서브쿼리? 서브쿼리란 하나의 SQL문 안에 작성되어있는 또 다른 SQL문을 말한다. 보통 (select * from member) 와 같이 괄호 안에 작성되어 있으며 끝나고는 세미콜론을 붙히지 않는다. 실행 순서는 서브쿼리 → 메인쿼리 순으로 진행된다. 이러한 서브 쿼리는 지금까지 배운 DML (SELECT, INSERT, UPDATE, DELETE)에 모두 적용시킬 수 있다. 어떻게 사용할 수 있는지 하나씩 사용해보면서 간단히 알아보자. 기준이 될 테이블이다. SELECT 가장 기본적인 SELECT의 서브 쿼리를 만들어보자. select * from member where id in (select id from student);..

오늘의 공부/WEB

캐시와 조건부 요청

캐시 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소 캐시의 장점 비싼 네트워크 사용량을 줄일 수 있다. 빠른 브라우저 로딩 속도로 사용자에게 편의를 제공한다. 캐시 덕분에 캐시 가능 시간동안은 네트워크를 사용하지 않아도 된다. 캐시가 없다면? 비싼 인터넷 네트워크 비용을 계속 지불해야 한다. 브라우저 로딩 속도가 느리기 때문에 사용자가 불편할 수 있다. 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 캐시의 기본 동작과정 먼저, 첫번째 요청시 클라이언트가 웹 브라우저를 통해 서버에 데이터를 요청한다. (GET / starts.jpg) 그러면 서버는 데이터와 함께 캐시의 유효시간을 같이 전달해준다. HTTP/1.1 200 OK Content-Type: image/..

오늘의 공부/WEB

쿠키 (Cookie)

쿠키(Cookie)란? 쿠키는 클라이언트의 정보를 가지고 있는 텍스트 형식의 데이터이다. 클라이언트가 저장하게 되며, 서버가 쿠키를 요청할시 서버로 전달하게 된다. 언제 사용할까? 로그인 세션 유지 (보통 세션 ID 값을 통해서 처리함.) 광고 정보 트래킹 네트워크 트래픽 추가 유발 쿠키가 사용되는 것을 간단한 예제와 함께 알아보자. **request** POST /login HTTP/1.1 user=BB_GG ------------------------------- **response** HTTP/1.1 200 OK Set-Cookie: user=BB_GG BB_GG님이 로그인했습니다. 클라이언트가 로그인을 할 때 user 이름을 같이 보내주게 되면 서버에서는 쿠키를 설정하여 클라이언트의 웹 브라우저에..

오늘의 공부/DB, SQL

[SQL] DML - DELETE

이번 글에서는 DELETE에 대해서 정리해보려고 한다. DELETE는 뜻 그대로 데이터를 삭제할 때 사용되는 구문이다. 먼저 기본적인 문법에 대해서 알아보자. DELETE FROM (테이블 이름) WHERE (컬럼) = (데이터); DELETE 문은 보통 위와같이 사용된다. 이번에도 역시 간단한 예제와 함께 자세히 살펴보자. delete from member where id = 0; delete form member // 멤버 테이블에서 삭제한다. where id = 9 // id가 9인 값을 문장으로 작성해보자면 id가 9인 값을 멤버 테이블에서 삭제한다” 가 되겠다. 삭제 전 삭제 후 *** 주의할 점 DELETE문도 UPDATE와 마찬가지로 where절이 거의 필수로 들어간다고 생각하면된다. 조건을..

ppusda
'오늘의 공부' 카테고리의 글 목록