[Springboot] SpringBoot 4.0??아몬드맛빼빼로2025년 5월 21~23일에 진행되었던 Spring IO 2025에서 Spring 7.0, SpringBoot 4.0이 발표되었다!이 글에선 그 중 SpringBoot 4.0의 변경사항에 대하여 집중하여 알아보려고 한다.가장 중요한 변화들이번 릴리즈를 통해 변화한 점은 수없이 많지만 세션에서 중요하게 다룬 것들은 다음과 같다.JDK 버전 변화Spring 7.0,SpringBoot 4.0은 JDK 17을 기본으로 사용하고 새로운 LTS인 JDK 25 사용을 강력하게 권장하고 있다. JDK 25에서 이번 릴리즈의 주요 개선점인 가상 스레드 활용과 AOT 지원이 더 뛰어나기 때문에 성능이 더 좋을 것이라 발표하였다.Jakarta 11 EE이번 릴리즈에서 Jakarta 11 EE로의 전환이 완료되었다.또한 그..- 2025-08-12 18:38:31
[Backend] EDA아몬드맛빼빼로MSA나의 애플리케이션을 ‘독립적으로 배포 가능한 서비스 단위’로 분할을 하여, 서로 간의 변경과 조합이 가능하도록 이루는 구조를 갖는 것을 의미하며 현대적 백엔드 개발의 중심적인 아키택쳐로 평가받고 있다.그러나 공학에서 '완벽'은 없듯이문제점설명서비스 간 통신 문제각 서비스는 독립적으로 배포되고 운영되기에 다른 서비스와 통신시 지연이 발생할 수 있다.데이터 일관성 문제각 서비스는 독립적인 데이터를 각각 가지고 있기에 서비스가 서로 다른 데이터를 가져 문제 발생의 여지가 있다.트랜젝션 문제서비스가 독립적으로 동작하기에 각각의 서비스에서 발생하는 트랜젝션을 확인하기 어렵다.이러한 문제들이 있다.이러한 문제들을 일정 부분 해결할 수 있는 것이 EDA,이벤트 기반 아키택쳐이다.E..D..A?기본적으로 이벤트 ..- 2025-07-15 10:06:38
[Kotlin] 'Kotlin'스러운 테스트 작성하기아몬드맛빼빼로들어가며사실 Kotlin 환경에서도 Java와 동일한 Mockito,JUnit 등을 유효하게사용할 수 있지만 'Kotlin'스럽게 테스트 코드 작성을 도와주는 여러 도구가 존재한다.MockK Kotlin을 위한 모킹 라이브러리로 Mockito에서 Kotlin 스타일로 만들어진 것이라 이해하면 쉽다. 코루틴이 지원되고 Private 메서드 역시 모킹이 가능하다. Kotlin 언어에서 지원하는 모든 것을 모킹할 수 있다.(ex: data class) MockK는 Kotlin의 특성을 완전히 이해하고 설계된 모킹 라이브러리다. Mockito가 Java 리플렉션에 기반한 반면, MockK는 Kotlin의 메타데이터와 바이트코드 조작을 통해 더 강력한 모킹 기능을 제공한다. 특히 Kotlin의 fina..- 2025-06-10 19:34:45
[기타] Github Flow아몬드맛빼빼로Git'hub' Flow?Git Flow는 다들 많이 들어봤을 것이다.다양한 브랜치를 운영하며 핵심이 되는 master 브랜치,develop 브랜치,feature 브랜치등을 운영하는 방법이다.그런데 Github Flow라고 들어봤는가? 기존의 고전적인 Git Flow 방식에서 벗어나 Github의 PR(Pull Request) 기능을 적극적으로 활용하는 방식의 관리 방식으로 후술하겠지만 간단하고 쉽게 익혀 사용할 수 있다.Github Flow 전략우선적으로,자동화 개념이 들어가 있다라는 큰 특징이 존재하며 만일 자동화가 적용되어 있지 않은 곳에서만 수동으로 진행하면 된다.Git flow에 비해 흐름이 단순해짐에 따라 그 규칙도 단순해졌다.기본적으로 master 브랜치에 대한 규칙만 정확하게 정립되어 있다..- 2025-06-09 22:40:33
[Backend] OAuth와 JWT아몬드맛빼빼로인증/인가개발자라면 한 번쯤 인증과 인가를 혼동해본 경험이 있을 것이다.인증(Authentication)은 "너는 누구냐?"에 대한 답이다. 로그인할 때 입력하는 아이디와 패스워드가 정말 그 사람 것인지 확인하는 과정이다. 카페에서 멤버십 카드를 보여주는 것과 같다고 생각하면 된다.인가(Authorization)는 "너는 무엇을 할 수 있냐?"에 대한 답이다. 로그인한 사용자가 특정 기능을 사용하거나 데이터에 접근할 권한이 있는지 판단한다. 회사에서 사원증으로 출입할 수 있는 층이 정해져 있는 것처럼 말이다.이 두 개념을 명확히 구분해야 JWT와 OAuth의 차이점도 이해할 수 있다.JWTJWT?JWT는 JSON Web Token의 줄임말이다. RFC 7519 표준으로 정의된 토큰 형식으로, 당사자 간에..- 2025-06-08 22:38:47
[DevOps] Jacoco아몬드맛빼빼로Jacoco!Jacoco는 Java 플랫폼에서 코드 커버리지(Code Coverage)를 측정하기 위한 도구로 코드 커버리지 측정 결과를 HTML,XML,CSV등의 형식으로 제공해줍니다.결과에 따른 최소 기준치를 정하여 충족하지 못하면 경고를 하거나 코드의 품질관리를 돕습니다.더보기Code Coverage?소프트웨어에서 테스트코드가 얼마나 코드들을 테스트하고 있는지 알려주는 지표사용법 및 사용모습1. build.gradle.kts에 스크립트 추가tasks.withType { useJUnitPlatform() finalizedBy(tasks.jacocoTestReport) // 테스트 실행 후 자동으로 리포트 생성}jacoco { toolVersion = "0.8.8"}tasks.jacoc..- 2025-05-29 17:11:32
[DevOps] Qodana아몬드맛빼빼로Qo...dana?Qodana란 JetBrains에서 제공하는 품질관리 도구로 CI 파이프라인을 통한 간편하고 정확한 코드 품질관리를 제공한다.Qodana는 품질 보장 프로세스를 간소화 하고 프로젝트의 무결성을 보장하여 코드의 품질을 일정 수준 이상으로 유지관리 할 수 있도록 도와준다.선택한 CI/CD파이프라인에서 직접 품질 게이트를 설정하여 프로젝트의 문제를 발견하지 못하고 개발 후반에 역효과를 일으키는 문제가 생기지 않도록 할 수 있다.Qodane가 할 수 있는 작업보안 위협 탐지 - 잘 알려진 보안 위협을 포함하여 보안 문제를 초래할 수 있는 메서드등을 알려주고 이를 개발자가 인지할 수 있도록 한다코드 검토 자동화 - 반복되는 코드,사용되지 않는 의존성 등의 문제를 자동으로 검토한다모범 사례 도입 ..- 2025-05-29 00:18:34
[Backend] MQ아몬드맛빼빼로Message Queue?메시지 큐(Message Queue; MQ)는 메시지를 송신하는 애플리케이션(Producer)과 이를 수신하는 애플리케이션(Consumer) 간의 비동기 통신을 가능하게 하는 시스템이다. 메시지 큐를 사용하면 메시지를 임시 저장하는 큐를 통하여 애플리케이션 간 통신이 이루어지며 이로 인하여 애플리케이션의 확장성과 성능을 향상할 수 있다.주요 특징1. 비동기 통신: Producer와 Consumer는 당연하지만 독립적으로 동작하므로 Producer가 큐에 메세지를 넣으면 Consumer가 이를 필요하고 또한 가능할 때 가져가 처리한다. 따라서 서로 직접 통신하지 않아도 된다.2. 내결함성: 큐에 메세지를 저장함으로서 Consumer가 다운되거나 문제가 생기더라도 메시지가 큐에 저장..- 2025-05-05 16:23:35
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)