-
월간 멘토링 - 3개월차학습로그 2022. 4. 28. 04:34
진행기간
2022년 02월 28일 ~ 2022년 04월 03일 학습로그
📝 멘토링 7주차 ( 02월 28일 ~ 03월 06일 )
인수테스트 TDD 4단계
- credential의 null 체크 보다 Controller에서 비로그인시에도 작동하도록 어노테이션 이용하기 (비 로그인에 대한 처리)
// 어노테이션으로 이용하기 @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface AuthenticationPrincipal { boolean required() default true; } // 어노테이션 설정 public class AuthenticationPrincipalArgumentResolver implements HandlerMethodArgumentResolver { private AuthService authService; public AuthenticationPrincipalArgumentResolver(AuthService authService) { @@ -24,8 +25,10 @@ public boolean supportsParameter(MethodParameter parameter) { } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { String credentials = AuthorizationExtractor.extract(webRequest.getNativeRequest(HttpServletRequest.class)); boolean required = parameter.getParameterAnnotation(AuthenticationPrincipal.class).required(); return authService.findMemberByToken(credentials, required); } } // AuthService에서 주석을 이용 하도록 설정 public LoginMember findMemberByToken(String credentials, boolean required) { if (!jwtTokenProvider.validateToken(credentials) && !required) { return new LoginMember(); } // 다음과 같이 @AuthenticationPrinipal 어노테이션을 이용 @GetMapping public ResponseEntity<PathResponse> findShortestPath( @AuthenticationPrincipal(required = false) LoginMember loginMember, @RequestParam("source") Long source, @RequestParam("target") Long target) { return ResponseEntity.ok(pathService.findShortestPath(loginMember, source, target)); }
📝 멘토링 7주차 ( 03월 07일 ~ 03월 13일 )
그럴듯한 서비스 만들기 1단계
- 네트워크 OSI 7계층
https://dodop-blog.tistory.com/312
네트워크 OSI 7 계층
네트워크 OSI 7계층에 대해서 학습하였다! OSI 7 계층 OSI 7 계층이란 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것 이다. 독립적인 역할을 분리함으로서 문제가 발생시 어느 계층에서 문
dodop-blog.tistory.com
- 통신망 ( + AWS에서의 망분리)
https://dodop-blog.tistory.com/313
통신망 ( + AWS 에서 망 분리하기)
이번에는 통신망을 분리하는 것에 대해 학습하였다. 망 분리하기 망분리는 개인 정보를 다루는 DB 서버 등을 위한 내부망, 사용자가 접근하는 웹 서버를 위한 외부망을 나누어 구성 한다. 여러겹
dodop-blog.tistory.com
- 통신 확인하기
https://dodop-blog.tistory.com/314
통신 확인하기
이번에는 네트워크 통신을 확인하는 방법에 대해 알아보자. ① Ping check IP 정보만으로 서버에 요청이 가능한 지 확인 ICMP 프로토콜 사용 (신뢰성을 보장하지 않는 IP의 오류정보를 발견하고 보고
dodop-blog.tistory.com
- PUT vs PATCH
https://dodop-blog.tistory.com/311
PUT vs PATCH
기존 자원에 대해 업데이트를 실행하는 API중 PUT과 PATCH의 차이를 알아보자. PUT PATCH 사용 기존 자원에 대한 정보를 업데이트 할 때 자원 일부의 업데이트 정보만 담은 요청을 받을 때 넘어오지 않
dodop-blog.tistory.com
📝 멘토링 7주차 ( 03월 14일 ~ 03월 20일 )
그럴듯한 서비스 만들기 2단계
- AWS 망 구성하고 서비스 배포하기
https://dodop-blog.tistory.com/310
AWS 망 구성하고 서비스 배포하기
이번에는 AWS를 통해 망을 구성하고 서비스를 배포하는 미션을 진행했다. 배포부분은 heroku 배포를 제외하고는 진행해본 적이 없기에 이번 미션을 통해서 배포에 대해 많은 부분을 배울 수 있어
dodop-blog.tistory.com
📝 멘토링 7주차 ( 03월 21일 ~ 03월 27일 )
그럴듯한 서비스 만들기 3단계, 화면응답 개선하기 1단계
- 보통 배포 스크립트의 경우 dev, beta, prod 등의 환경을 함께 운영하기 때문에 spring.profiles.active는 외부에서 입력 받도록 구성
- 웹 성능 진단하기
https://dodop-blog.tistory.com/315
웹 성능 진단하기
이번엔 미션을 통해서 배포한 사이트의 성능을 진단하고 성능을 개선키도록 하였다. 먼저 웹 성능 진단을 알아보자. 서비스의 상태 진단 우선 서비스의 상태진단은 전구간, 인터넷구간, 브라우
dodop-blog.tistory.com
- 부하테스트
https://dodop-blog.tistory.com/322
부하 테스트 ( + k6, grafana + influxdb, ngrinder)
이번엔 도구를 이용하여 부하테스트를 진행하는 방법을 배웠다. 부하테스트 부하테스트는 서버가 어느정도의 부하를 견딜 수 있는지 확인하기 위한 테스트 이다. 서버의 한계치를 확인함으로
dodop-blog.tistory.com
- 로깅, 모니터링
https://dodop-blog.tistory.com/319
서버 진단하기 ( + 로깅, 모니터링)
이번엔 서버를 진단하는 방법을 공부하였다. 서비스의 상태 진단 서버는 크게 CPU, Network Interface Card(NIC), RAM, Disk Drives 4가지로 구성되어있는데 각 자원들은 여유 또는 포화 상태를 가지게 된다.
dodop-blog.tistory.com
📝 멘토링 7주차 ( 03월 28일 ~ 04월 03일 )
화면응답 개선하기 2단계
- 단일 요청에 대해 문제가 없는데 부하를 늘릴 경우 지연시간이 높아진다면, 처리해야 할 Task가 늘어나서 처리하지 못하는 경우이기 때문에 Scale out을 통한 서버 증감에 따른 테스트의 tps 변화를 보도록 한다.
- 화면 응답 개선하기
https://dodop-blog.tistory.com/321
화면 응답 개선하기
이번엔 화면응답속도를 개선하는 방법에 대해 알아보자. 화면 응답 속도를 개선하는 방법에는 인터넷구간 성능 개선을 통한 방법과 데이터 조회 성능 개선의 방법이 존재한다. 인터넷 구간 성
dodop-blog.tistory.com
🌱 멘토링 3개월차 학습 후기
3개월차에는 가장 부족했고, 그래서 더 공부하고 싶었던 인프라미션을 시작했다. 역시 네트워크에 대한 지식이 하나도 없는 상태에서 시작했기 때문에 첫 커밋 보내기 까지 시간이 많이 걸리고 망 구성부터 어떻게 진행해야 할지 막막했지만 그 만큼 더 많이 배울 수 있었던 한달이었다! 특히 지난 독학 프로젝트에서는 배포에 대해 아무것도 몰라서 결국 heroku에게 전임을 맞기는 배포를 진행해서 이 부분은 꼭 수정하고 싶었고, AWS 부분에 대해서도 자세히 알고 싶었는데 미션을 수행해보니 안해도 될 헛질도 하게 되면서 확실히 많이 익히게 되었다! ☺️
'학습로그' 카테고리의 다른 글
4개월차 모의면접 (0) 2022.04.30 월간 멘토링 - 4개월차 (0) 2022.04.28 2개월차 모의면접 (0) 2022.03.20 월간 멘토링 - 2개월차 (0) 2022.02.28 월간 멘토링 - 1개월차 (0) 2022.02.28