전체 글

train hard, big dream
Skill Up/우아한테크캠프 Pro 4기

[우아한테크캠프 Pro 4기] 6주차 미션(1) - 웹 성능 테스트

웹 성능 테스트 웹 애플리케이션의 성능 고려하기 웹 성능 예산 작성시 상황에 맞게 여러 지표를 혼합하여 측정 정량 기반 지표(Quantity-Based) : 이미지의 최대 사이즈, 외부 자원의 총 개수 등 시간 기반 지표(Timing-Based) : 유저가 렌더링을 인지하는 데 드는 시간을 세분화하여 비교 규칙 기반 지표(Rule-Based) : PageSpeed, Lighthouse 등 신뢰성 높은 도구의 측정 시간 미션 진행은 주로 PageSpeed로 진행 PageSpeed 사이트 분석시 각 지표의 의미 First Contentful Paint(최초 콘텐츠풀 페인트, FCP) : 페이지가 로드되기 시작한 시점부터 페이지 콘텐츠의 일부가 화면에 렌더링될 때까지의 시간을 측정 Time to Interac..

Skill Up/우아한테크캠프 Pro 4기

[우아한테크캠프 Pro 4기] 5주차 미션 - ATDD & TDD

Mockito - https://mangkyu.tistory.com/145 RepositoryTest는 @DataJpaTest 어노테이션으로 하면 테스트 속도가 빨라진다b 테스트에 특정 데이터를 set 해야한다면 ReflectionTestUtils.setField(); 테스트에 해당 방법을 써야하는지도 우선 고려하자 참고 : https://dncjf64.tistory.com/314 커스텀 예외 클래스를 생성했다면 메서드도 커스텀 해보자 참고 : https://seovalue.github.io/2022/02/21/custom-exception/ ResponseEntity vs @ResponseStatus Spring Test 전략 외부 라이브러리 DijkstraShortestPath 를 커스텀 해보자 참고..

Skill Up/우아한테크캠프 Pro 4기

[우아한테크캠프 Pro 4기] 4주차 미션(2) - AWS 서버 설정하기 & 배포 스크립트 작성하기

1. AWS 서버 설정하기 linux hostname 설정 sudo hostnamectl set-hostname [name] shell prompt 설정 sudo vi ~/.bashrc USERNAME=BASTION PS1='[\\e[1;31m$USERNAME\\e[0m][\\e[1;32m\\t\\e[0m][\\e[1;33m\\u\\e[0m@\\e[1;36m\\h\\e[0m \\w] \\n\\$ \\[\\033[00m\\]' ## [\\e[1;31m$USERNAME\\e[0m] - USERNAME 영역 ## [\\e[1;32m\\t\\e[0m] - 시간대 ## [\\e[1;33m\\u\\e[0m@\\e[1;36m\\h\\e[0m \\w] \\n\\$ \\[\\033[00m\\] - 아마도 그 외 ## U..

Skill Up/우아한테크캠프 Pro 4기

[우아한테크캠프 Pro 4기] 4주차 미션(1) - AWS 서비스 구성하기

VPC 생성 CIDR은 C class(x.x.x.x/24)로 생성 C class IP 대역은 192.0.0.0 ~ 223.255.255.255 VPC 생성 방법 IPv4 CIDR 블록 > IPv4 CIDR 수동 입력 선택 > IPv4 CIDR 입력 IPv6 CIDR 블록 > IPv6 CIDR 블록 없음 선택 테넌시 > 기본값 선택 Subnet 생성 외부망으로 사용할 Subnet : 64개씩 2개 (AZ를 다르게 구성) 내부망으로 사용할 Subnet : 32개씩 1개 관리용으로 사용할 Subnet : 32개씩 1개 subnet은 private 2개와 public 2개에 대해 가용 영역(ap-northeast-2a, ap-northeast-2c)을 나누어 1개씩 생성 vpc를 192.168.99.0/24 로..

Skills/Java & Spring

Java의 Reflection과 JPA 엔티티의 기본 생성자 protected를 권장하는 이유

Reflection? java에서는 reflection이라는 api를 제공한다. reflection은 구체적인 클래스 타입을 알지 못해도 클래스의 메서드나, 타입, 변수들에 접근할 수 있도록 해주는 api이다 대표적인 적용 예시로는 1) JPA에서 객체 조회시 데이터가 들어가는 것 2) @RequestBody 사용 시 DTO 객체에 데이터가 들어가는 것 3) 테스트 케이스 작성시 private 메서드를 테스트할 때 등이 있다. 어떻게 가능한걸까? 기본적으로 객체에 데이터를 넣기 위해서는 일련의 과정(new, setter 등)이 필요하고, 접근 제어자에 따라 접근이 불가능한 것이 맞다. 하지만 reflection이 적용된다면 이러한 과정이 필요하지 않고 private 메서드의 접근도 가능하다. 바로 ref..

프리미99
Rabbit in the Moon