본문 바로가기

ETC

(7)
[Test Code] TDD와 BDD와 ATDD에 대해서 TDD(Test Driven Development) 테스트 주도 개발 기능 중점 BDD(Behavioral Driven Development) 행동 주도 개발 시스템 동작 중점 ATDD(Acceptance Test Driven Development) 인수 테스트 주도 개발 요구사항 중점 [TDD란?] 개발자의 관점에서 구현된 테스트 방법론이다. 모든 작은 기능에 대한 테스트 사례를 설계하고 작성을 하는 것이다. 주요 의도는 테스트 실패 시에만 새로운 코드를 수정하거나 작성하는 것이다. 따라서 테스트 스크립트 중복이 줄고 애자일 개발 생태계에서 널리 사용되고 있다. TDD 접근 방식에서 자동화된 테스트 스크립트는 코드의 기능적인 부분보다 먼저 작성된다. TDD 단계 문서에 지정된 요구사항을 기반으로 개발자..
[JPA] JPA N+1 문제 및 해결방안 [N+1 문제란?] 연관관계에서 발생하는 이슈로 연관관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수(N)만큼 연관관계의 조회 쿼리가 추가로 발생하며 데이터를 읽어오게 된다. 이를 N+1 문제라고 한다. [N+1 문제를 확인하기 위한 관계 코드] 멤버와 팀의 관계로 팀은 여러명의 멤버로 구성될 수 있다. 멤버는 하나의 팀에 속해있다. Member.class 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 31 32 33 34 35 36 37 38 39 package practice.practiceproject.domain; import javax.persistence.Entity; import java..
www.google.com을 입력했을 때 웹 동작방식 [웹 페이지 요청에 대한 동작방식] 브라우저에 입력된 URL을 DNS 서버에서 검색해서 domain name에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달한다. IP 주소는 HTTP 프로토콜을 사용해 웹 페이지 사본을 보내달라는 HTTP 요청 메시지를 생성하고 이 메시지는 TCP 프로토콜을 이용해서 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송된다. 이렇게 도착한 HTTP 요청 메시지는 HTTP 프로토콜을 사용해 웹 페이지 URL 정보로 변환된다. 웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색한다. 검색된 웹 페이지 데이터는 HTTP 프로토콜을 이용해 HTTP 응답 메시지를 만들어 TCP 프로토콜을 이용해 인터넷을 거쳐 요청 컴퓨터로 전송된다. 도착한 HTTP ..
JWT(Json Web Token)에 대해 [JWT(Json Web Token)이란] Json Web Token (JWT)는 정보를 JSON 객체로 안정하게 전송하기 위한 간결한 토큰입니다.(RFC 7519) HMAC와 같이 암호화 해시 함수와 기밀 암호화 키를 갖는 메시지 인증 코드 또는 RSA 또는 ECDSA를 사용하는 public/private key을 사용하여 서명을 합니다. 이처럼 서명되어 있기 때문에 확인하고 신뢰할 수 있습니다. 토큰 안에 포함된 클레임(Claim)의 무결성을 확인 할 수 있으며 암호화된 토큰은 이러한 클레임(Claim)을 다른 참조로부터 숨길 수 있습니다. public/private key를 이용하여 토큰에 서명할 때 서명은 개인키를 보유하고 있는 참조만 서명했다는 것을 증명할 수 있습니다. [JWT는 언제 사용할까..
GET, POST, PUT GET 리소스 획득 GET 메서드는 리퀘스트 URI로 식별된 리소스를 가져올 수 있도록 요구한다 - GET 요청은 캐시 할 수 있다 - GET 요청은 브라우저 기록에 남는다 - GET 요청을 북마크에 추가할 수 있다 - 민감 데이터를 처리할 때 GET 요청을 사용해서는 안된다 - GET 요청에는 길이 제한이 있다 - GET 요청은 데이터 검색에만 사용해야 한다 POST POST 메서드는 엔티티를 전송하기 위해서 사용된다 GET으로도 엔티티를 전송할 수 있지만, 자주 사용하지 않고 일반적으로 POST를 사용한다 HTTP POST는 데이터가 URL에 표시되지 않으며 웹사이트에 데이터를 제출할 때 일반적으로 HTTP POST는 사용자 상호 작용의 결과로만 수행될 수 있다(e.g. Submit button) -..
Git 연습하기 Git의 기초를 연습한 사이트 https://www.codecademy.com/learn Catalog Home | Codecademy If you’re not sure where to begin or what to learn next, this is a great place to start. Check out our top coding courses, Skill Paths, and Career Paths. www.codecademy.com 이 사이트에서 git을 검색한 후 무료버전으로 연습을 했다. 이 사이트에서 설명하기를 Git is a software that allows you to keep track of changes made to a project over time. Git은 프로젝트의 변경..
회고를 작성하기 위한 KPT, 5F KPT(Keep, Problem, Try) KPT 약자 그대로 Keep : 현재 만족하기 때문에 지속하고 싶은 부분 Problem : 부정적이거나 아쉬운 부분에 대해서 개선이 필요하다 생각되는 부분 Try : Problem에 대한 해결로 문제에 대한 요인을 파악한다(다음 회고 때 문제해결에 대해 확인할 수 있다) 5F 5F는 총 5가지의 회고단계를 말한다 Fact(사실) : 오늘 한 일에대한 사실 Feelings(느낌) : 한 일에대해 느낀점 Finding(배운점) : 무엇을 배웠는지(인사이트) Future Action(향후 계획) : 액션플랜으로 앞으로 어떠한 계획을 실행할 것인지에 대한 계획 Feedback(추후 공유) : 이후에 핵션플랜 수행에 대한 피드백을 갖는다