본문 바로가기

분류 전체보기590

굿즈 프로젝트 기간 3주 순간 트래픽 감당 트래픽 3분에 8000회 캐싱 : 자주 참조하는 데이터는 레디스로 캐싱 비동기 처리/스케일 아웃 용이한 구조 : 메시지 큐 카프카 사용하여 스케일아웃에 유연하게 시스템 디자인 저 트래픽을 감당하려면 EC2, DB MEM, CPU 스펙 얼마로 해야 하고, 스케일 아웃 적용하려면 인프라/코드 구조 어떻게 해야 하는가 시스템 스프링부트 JAVA 11 ORM : JPA/Hibernate/MyBatis/QueryDSL DB : MySQL 인프라 AWS EC2 MySQL 부하 테스트 : JMETER 테스트코드 : 는 기간 문제로 없었음 VCS : GIT 배포 : 젠킨스/도커/쿠버네티스 심화과정 : 분산 환경에서 트랜잭션 롤백처리 (하드 난이도) 이 프로젝트의 주 목적은 어떤 도.. 2023. 12. 10.
2장. 도구 선택 및 시작 이번 장에서 확인 할 항목들 빌드 시스템 프로그래밍 언어 도구 모음(toolchains) 코드 편집기 2.1 메이븐 vs 그레이들 2.1.1 아파치 메이븐 XML 형식의 pom.xml 파일에 프로젝트에서 사용할 의존성과 플러그인을 적기만 하면 된다. mvn 명령어를 실행할 때, 어떤 단계를 완료할지 지정해서 컴파일, 패키징 등 원하는 작업 수행한다. 메이븐은 컨벤션에 따라 특정한 프로젝트 구조를 생성한다. 빌드 도구와 씨름하지 않으려면 정해진 프로젝트 구조에서 크게 벗어나지 않아야 한다. 즉 메이븐이 만든 프로젝트 구조를 그대로 사용하지 않으면 메이븐을 쓰는 게 역효과를 낸다. 2.1.2 그레이들 메이븐의 프로젝트 규칙과 엄격한 구조의 빌드 방식이 맞지 않는 프로젝트일 경우 사용 가능한 빌드 시스템 JV.. 2023. 9. 14.
1장. 스프링 부트 스프링 부트의 3가지 핵심 기능 의존성 관리 간소화 배포 간소화 자동 설정 1.1.1 스프링 부트 스타터는 특정 기능을 사용하기 위해 의존성이 맞는 라이브러리 버전들 묶음을 제공해서, 특정 기능 사용을 위한 외부 라이브러리 관리를 수월하게 해준다. ex : spring-boot-starter-web 같은 스타터를 추가하면, 기능 사용을 위해 라이브러리 호환 체크(테스트)가 완료된 의존성들을 수월하게 가져온다. -> 전반적으로 스프링 부트의 스타터 개념은 의존성을 간소화하고 애플리케이션에 기능 전체를 추가하는 데 필요한 작업을 줄여준다. 그리고 테스트, 유지보수, 업그레이드에 드는 오버헤드를 크게 줄여준다. 1.1.2 배포 간소화 - 실행 가능한 JAR 예전 데이터베이스 엑세스가 가능한 애플리케이션을 만들.. 2023. 9. 14.
@Transactional 어노테이션 관련 인상깊게 정보 본 블로그 spring-data-jpa에서 제공하는 JpaRepository의 기본 구현체는 SimpleJpaRepository이고, class 위에 기본적으로 @Transactional(readOnly = true)로 설정되어 읽기 트랜잭션으로 설정되어 있다. 그런데 save, delete 동작 수행하는 메서드는 트랜잭션이 적용되어야 하므로 @Transactional 어노테이션이 붙어 있는 것을 확인할 수 있다. https://cupeanimus.tistory.com/102 @Transactional 옵션을 사용하지 않는다면? 일단 기본적으로 @Transactional 에서 많이 사용되는 readOnly 옵션의 default 는 false이다. 때문에 서비스레벨에서 해당 메서드의 Transaction 관리를 하려.. 2023. 8. 29.