문제스프링부트에서 트랜잭션을 관리할 때, 대부분의 개발자들이 선언형 트랜잭션이라 불리는 @Transactional 어노테이션을 사용한다. 그 이유는 확실하다. @Transactional은 AOP로 트랜잭션을 관리해주기 때문에, 개발자가 트랜잭션을 관리하는 코드를 작성하지 않아도 된다.그런데 만약 선언형 트랜잭션과 명령형 트랜잭션을 같이 사용하게 되면 어떻게 될까? 무엇이 롤백되고, 무엇이 커밋될까? 아니면 트랜잭션의 경계가 꼬여버릴까? 한 번 알아보자.준비 코드Member.classMember는 JPA 엔티티이며, 이름과 나이를 멤버로 가진다.MemberService.class메서드에 @Transactional을 붙인 채로 PlatformTransactionManager를 주입받아 사용한다.Test Co..
문제와 해결사이드 프로젝트에 스프링 시큐리티를 적용하기 위해 기본적인 Security Config 파일(WebSecurityConfig.java)를 생성하였었다.그 후 TDD로 개발을 진행하는데, 소나큐브 + jacoco에서 테스트 커버리지 대상에 Config 파일도 포함시켰다.Config 파일에 대한 테스트가 없기 때문에 86.70%가 나왔다.나는 Configuration 클래스들에 대해서는 TDD로 작성할 생각이 전혀 없었기 때문에 해당 클래스를 커버리지 대상 파일에서 제외해야했다.sonarqube: 4.4.1.3373jacoco: 0.8.8열심히 구글링, Chat GPTing을 한 결과 제외 방안 다음과 같다.jacocoTestReport { dependsOn test reports {..
이 글은 애플리케이션에 소나큐브를 적용하는 방법에 대해 설명하지 않는다.프로젝트 개발에 Sonarqube를 사용하려고 한다. 특히나 1인 프로젝트이기 때문에 코드 품질에 대해 스스로 피드백하고 개선하는데에 한계가 있다.소나큐브가 뭐하는건가?소나큐브(Sonarqube)는 대표적인 정적분석도구이다. "정적분석도구"라는 단어가 생소하거나 직관적이지 않을 수 있다. 정적분석도구는 말 그대로 정적 코드를 분석하여 버그, 코드 스멜, 보안 취약점 등을 분석하여 코드 품질을 검사해주는 도구이다. 보통 모니터링이라 하면 애플리케이션의 런타임을 분석하는데, 정적분석도구는 런타임 이전인 정적인 코드 그 자체에 대해 분석한다.정적분석도구 중 소나큐브를 선택한 것은 가장 커뮤니티가 활성화되어있기 때문이다.개발기에 적용하기소나..
나만의 서버 구축하기사이드 프로젝트를 진행하며 다양한 인프라 시스템을 구축하고, 개발할 때 리눅스 서버를 24/7 마음껏 사용하고 싶었다. 여기에는 다양한 선택지가 있었다.1. AWS EC2 사용 (꼭 AWS여야만 하는 것은 아니었다.)우선 첫 번째 선택지인 EC2는 가장 먼저 제외됐다. 나만의 개발 서버인 만큼 조금은 널널한 환경에서 막 사용하고 싶었고 클라우드 컴퓨팅 비용 관리에 휘둘리기가 싫었다. 만약 사이드 프로젝트를 운영하게 된다면 운영서버는 AWS에 올릴 생각이지만 저비용의 클라우드 서버는 스펙이 매우 열악하다.AWS 프리티어로 EC2를 사용하면 위의 t2.micro 인스턴스를 사용할 수 있다. 위 인스턴스는 t2.micro보다 vCPU 가 하나 더 많은 t3.micro이다. 해당 인스턴스는 ..
프로젝트 개요프로젝트 동기살아가면서 경제는 절대 빼놓을 수 없는 부분이다. 하지만 경제에 대해 관심이 생겨도, 현업에 치이고 커리어 개발을 위해 공부하다보면 경제 공부 및 경제 동향(뉴스)을 챙겨볼 시간이 턱없이 부족하다. 나의 경우도 그렇다. 특히, 우리 개발자들은 평생 공부해야하는 직업 (다른 직업도 마찬가지긴 함)이기 때문에 개발 공부를 하다보면 경제 공부를 놓쳐 뒤늦게 후회하곤 한다.이번 프로젝트를 통해 경제 뉴스를 한 번에 모아보고, AI를 통해 분석 및 요약하여 바쁜 와중에도 많은 정보를 얻을 수 있는 서비스를 만들고자 한다. 또, 내 포트폴리오를 AI와 함께 관리할 수 있는 서비스도 제공해보려고 한다.이 프로젝트를 수행하면 자연스레 경제에 대한 지식이 쌓일 것으로 기대되기 때문에, 나는 개발..
본 글은 책 소프트웨어 장인(산드로 만쿠소 저)을 읽고, 책 내용과 더불어 저의 생각과 제가 실무에서 가져갈 수 있는 것들을 저에게 가르쳐주기 위해 정리해놓은 글입니다. 아직 1.1년차 어린이 개발자이기 때문에 남을 가르치기 위해 작성한 것이 아님을 알려드립니다.책 소프트웨어 장인은 소프트웨어 개발자로서 어떻게 하면 더 나은 프로그래머가 될 수 있을까?에 대한 물음에 힌트를 주는 책이다.나는 야구를 좋아하는데, 최강야구에 출연하시는 김성근 감독님께서 돈 받으면 프로라고 하시는 걸 들었다. 개발자로서 취직하여 일하고 있는 우리 역시 프로 개발자이다. 근데 우리는 정말 개발자로서 프로페셔널할까? 개발자로서 프로페셔널하다는 것은 무엇일까? 책에서는 소프트웨어 장인 정신이 개발자로서의 프로페셔널리즘이라고 한다...