이번 스프린트는 마우스 스프린트다. 5개의 에픽을 진행했다.
순번 | 구분 | 에픽 | 시작 스프린트 | 에픽 완료 여부 |
1 | 웹사이트 | 1일 ?개 알고리즘 문제 풀기 | 1회차 | |
2 | 스터디 | 백엔드 스터디 | 1회차 | |
3 | 책 | Real MySQL 8.0 1권 | 13회차 | O |
4 | 인프런 | 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch | 12회차 | O |
5 | 프로젝트 | URL 단축 서비스 프로젝트 (four days) | 16회차 |
1. 1일 ?개 알고리즘 문제 풀기
총 7개 문제를 풀었다. 난이도는 백준의 실버 3~5 정도 된다.
기억에 남는 문제는 아래 문제다. 요세푸스 문제는 여러 번 풀어봤는데, 이번에는 파이썬의 deque로 풀었다. 속도 때문에 PyPy3으로 제출했는데, Python 3로 해결한 코드를 보니 같은 deque의 rotate 메서드를 사용했다(나는 직접 데이터를 꺼내고 넣었음). rotate 메서드는 내부 리스트를 회전시켜주는 메서드인데, 직접 deque의 데이터를 꺼내고 넣어 회전시키는 것보다 효율적으로 구현이 되어 있는 듯하다.
20301번: 반전 요세푸스
첫째 줄에 정수 $N$, $K$, $M$이 주어진다. ($1 \leq N \leq 5\ 000$, $1 \leq K, M \leq N$)
www.acmicpc.net
2. 백엔드 스터디 & 3. Real MySQL 8.0 1권
Real MySQL 8.0 (1권) - YES24
『Real MySQL 8.0』은 『Real MySQL』을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스터 기능들과 소프트웨어 업계 트렌드를 반영한 GIS 및 전문 검색 등의 확장 기능들을 추가로
www.yes24.com
이번 스프린트에서는 10.3장부터 끝까지 학습했다. 저번 스프린트와 마찬가지로 스터디 모임은 진행하지 않았고, 각자 학습했다.
10.3장은 실행 계획 분석에 대한 내용으로, EXPLAIN 명령을 실행하면 출력되는 결과에 대해 설명한다.
MySQL 8.0 버전이 나오면서 실행 계획 결과에 크게 바뀐 점은 JSON, TREE 포맷이 추가되었다는 점이다. 이를 통해 효율적으로 실행 계획을 확인하고 쿼리를 개선하는 것이 가능해졌다. 실행 계획 결과에는 다양한 정보를 표현하는 칼럼들이 있는데, 10.3장에서 그러한 칼럼에 대해 배울 수 있다. id, table, type, Extra 등..
'Real MySQL 8.0 1권'을 읽고 학습하면서 일부 내용은 정리하기도 하고 여러 번 읽기도 했다. 이 과정에서 MySQL에 대해서 많은 것을 알 수 있었고, 도움이 되었다. 오늘까지 읽었던 CS 책 중에 가장 도움이 되었던 책 같다. 빨리 읽으면 읽을수록 좋은 책 같다. 그래서 복습할 겸 조만간 실습 환경을 제대로 구축해서 다시 한번 책을 읽으면서 쿼리를 직접 실행시켜보고 개선해보려고 한다.
이번주 스터디를 끝으로 'Real MySQL 8.0 1권'을 끝냈는데, 다음주 스터디부터는 아래 책을 공부할 듯하다. 스터디원이 추천한 책으로 예전에 읽었던 '클린 아키텍처'를 읽고 다음에 읽으면 좋은 책이라고 한다. 분량이 많지 않아서, 빠르게 학습하고 'Real MySQL 8.0 2권' 책으로 넘어가려고 한다.
만들면서 배우는 클린 아키텍처 - YES24
우리 모두는 낮은 개발 비용으로 유연하고 적응이 쉬운 소프트웨어 아키텍처를 구축하고자 한다. 그러나 불합리한 기한과 쉬워보이는 지름길은 이러한 아키텍처를 구축하는 것을 매우 어렵게
www.yes24.com
4. 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch
스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch - 인프런 | 강의
초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으
www.inflearn.com
이번 스프린트에서는 섹션 13부터 끝까지 수강했다(중간의 SkipListener, RetryListener, Job Explorer 등은 생략).
리스터는 활용해 Job, Step, Chunk 등의 실행 전후에 수행할 로직을 추가하는 방법과 스프링 배치를 테스트하는 방법을 배웠다. 섹션 15에서는 배치 애플리케이션을 만들어보면서 파일이나 API로 데이터를 읽어오고 데이터를 저장하는 프로그램을 만들어봤다.
중간에 생략한 섹션과 내용도 있는데, 스프링 배치를 사용해 애플리케이션을 만들면서 필요한 순간이 오면 강의를 마저 들으려 한다.
수강한 인프런 강의 중 가장 강의 시간이 긴 강의였는데, 강의 시간이 긴 만큼 얻어 가는 지식도 많은 것 같다. 꾸준히 복습하고 앱을 만들면서 체득해야겠다.
아주 좋은 강의였다!
5. URL 단축 서비스 프로젝트 (four days)
이번 스프린트에서는 web 프로젝트를 세팅하고 core server에 CORS 설정을 추가했다.
web 프로젝트 세팅
GitHub - four-days/web
Contribute to four-days/web development by creating an account on GitHub.
github.com
web은 앵귤러로 만들려고 한다. 이번 스프린트 때 프로젝트를 세팅하고 조금 코드를 작성해 봤다. 앵귤러는 Typescript와 class를 기반으로 의존성을 주입함으로써 화면을 만들 수 있는데, Spring Boot 기반의 서버 개발 경험이 있어서인지 앵귤러 사용이 낯설지는 않았다(모르는 게 많지만..).
앵귤러 공부는 틈틈이 하고 있는데, 요즘에는 'Angular Essentials' 책보다 아래 웹사이트를 통해 공부하고 있다. 아래 웹사이트는 'Angular Essentials' 책의 저자분이 만드신 웹사이트인데, 앵귤러뿐만 아니라 HTML, CSS, JS 등의 기술에 대해 학습할 수 있다. 내용이 잘 정리되어 있어서 좋은 자료라고 생각한다.
웹 프로그래밍 튜토리얼 | PoiemaWeb
Front-end Development Tutorial
poiemaweb.com
'후기 & 회고' 카테고리의 다른 글
1주 1스프린트 21회차 회고 (0) | 2023.04.30 |
---|---|
1주 1스프린트 20회차 회고 (0) | 2023.04.23 |
1주 1스프린트 18회차 회고 (0) | 2023.04.08 |
1주 1스프린트 17회차 회고 (0) | 2023.04.01 |
1주 1스프린트 16회차 회고 (0) | 2023.03.25 |
댓글