분류 전체보기(90)
-
Synchronized 키워드가 어디에 붙는지에 따라 의미가 약간씩 변화한다고 ?
면접을 준비하다가 synchronized에 대해 깊이 알고 가면 좋을 것 같아 정리한다.synchonized 키워드가 어디에 붙는지에 따라 의미가 약간씩 변한다고 하는데 이 부분을 자세히 살펴보자.synchronized는 lock을 사용해 동기화를 시킨다.하지만 사용 방식에 따라 혼동되기 쉽다.synchronized는 4가지의 사용법이 있다. sychronized method, static sychronized method, sychronized block, static synchonized block.이 포스팅에서는 이 4가지 방식의 차이인 lock이 적용되는 범위를 중점으로 다룬다. synchonized method (클래스의 인스턴스에 lock을 검)synchronized method는 클래스의 인..
2025.06.19 -
@Transactional(readOnly = true) 내부에 쓰기 코드가 있다면?
문득, @Transactional(readOnly = true) 내부에 쓰기 코드가 있다면 어떻게 될지 궁금했다.해당 내용을 정리하기 전, @Transactional(readOnly = true) 의 장점을 분석해보자.@Transactional(readOnly = true) 장점이유 1. Snapshot을 따로 저장하지 않음이는 JPA의 영속성 컨텍스트가 수행하는 변경감지와 관련이 있다.변경 감지(Dirty Checking)란?영속성 컨텍스트는 Entity 조회 시 초기 상태에 대한 Snapshot을 저장한다.트랜잭션이 Commit될 때, 초기 상태의 정보를 가지는 Snapshot과 Entity의 상태를 비교해 변경된 내용에 대해 update query를 생성해 쓰지 지연 저장소에 저장한다.그 후, 일괄..
2025.06.17 -
Java 8 버전 이후 새로운 기능 정리 및 코드 예제
면접도 앞두고 있어 Java 8 버전 이후 새로운 기능이 어떤 것이 있었는지 정리해보겠다. 8Lambda Expression 및Method Reference 도입Languageanonymous inner class 표현 간략화 (함수형 표현)인자로 method reference를 전달 (함수형 표현)8Collections & StreamsLanguageCollections에서 Streams API를 사용하여, 이전의 반복문이 아닌 함수형 구현8Interface Default Method 도입Languageinterface 내부에서 default 메서드를 선언할 수 있다.8Optional Class 도입LanguageOptional Class를 이용하여 NullPointerException이 발생하는 것을..
2025.06.17 -
코드가 실행되는 동안 메모리에서 벌어지는 일
지인 중에 면접 질문으로 스택과 관련하여 질문이 들어왔다고 하길래, 스택에 관련하여 내용을 정리할 필요성을 느꼈다. 코드가 해석되는 동안 코드에 필요한 데이터들이 어디에 저장되는지, 함수 호출과 종료 시에 무슨 일이 일어나는지 살펴보자.프로세스가 실행되기 위해서는 해당 프로세스가 사용할 메모리 공간이 필요하다.프로세스가 할당받는 메모리 공간은 통상 네 가지로 분류되는데, code 영역, data 영역, heap영역, stack영역이다.code 영역 : 실행가능한 코드가 위치한다.data 영역 : 전역 변수들이 위치한다.heap 영역 : 프로그램이 동작 중 동적으로 할당된 메모리의 영역이다.stack 영역 : 함수를 동작시킬 때 사용하는 임시 데이터 저장 영역이다.(예 : 함수의 인자, return값, 로..
2025.06.16 -
Spring Boot3 403, 401 - MockMvc, Spring Security Test
참조 코드https://suhyeon-developer.tistory.com/38https://tlatmsrud.tistory.com/77https://velog.io/@wonizizi99/SpringSpring-security-CSRF란-disablehttps://velog.io/@jmjmjmz732002/Springboot-Junit5-컨트롤러-테스트-401-에러를-마주쳤다https://velog.io/@tjdtn0219/SpringSecurity적용-후-Controller-테스트코드-작성-시-발생했던-오류들-Feat.-Junit5-csrfhttps://lemontia.tistory.com/1088MockMvc를 활용하여 테스트하는 방법을 알아봤으니, 이제 내 프로젝트에도 적용해보자.@RestCont..
2025.06.12 -
Spring Boot MockMvc 이해하기 : 테스트 흐름 및 사용예제
해당 글에서는 MockMvc에 대해 이해하고 활용하는 방법에 대해 확인해보자.MockMvc스프링 프레임워크에서 제공하는 웹 애플리케이션 테스트용 라이브러리를 의미이를 사용하면 웹 애플리케이션의 다양한 컴포넌트에 대해 테스트 가능MockMvc를 사용하면 HTTP 요청을 작성하고 컨트롤러의 응답을 검증이를 통해 통합 테스트를 실행하지 않고도 컨트롤러의 동작을 확인가능MockMvc를 이용한 테스트 목적MockMvc를 이용하여 컨트롤러의 동작을 테스트하는 데 사용컨트롤러의 엔드포인트를 호출하여 HTTP 클라이언트의 요청을 모방하고 적절한 응답을 확인하기 위해 테스트를 수행이러한 테스트 과정을 통해 애플리케이션의 서비스 로직이나 API 엔드포인트가 의도한 대로 동작하는지 확인하고, 버그를 발견하고 수정하는 데 도..
2025.06.12