일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 동시성
- Varchar
- 자바
- 스프링
- reflection
- foreach
- CAS
- MySQL
- 가비지 컬렉션
- 백엔드
- 데이터 타입
- java
- 가비지 컬렉터
- Di
- db
- Locking Read
- Synchronized
- Atomic Type
- Lock
- 동시성 문제
- iterator
- MVCC
- iterable
- jpa
- gc
- text
- Today
- Total
목록분류 전체보기 (98)
과정을 즐기자
JPA Auditing 기능을 사용할 때 아래와 같은 에러가 발생하였다. java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.contex..
java.lang.StackOverflowErrorat jpabook.jpashop2.domain.Order.setDelivery(Order.java:55)at jpabook.jpashop2.domain.Order.setDelivery(Order.java:55)at jpabook.jpashop2.domain.Order.setDelivery(Order.java:55)at jpabook.jpashop2.domain.Order.setDelivery(Order.java:55)at jpabook.jpashop2.domain.Order.setDelivery(Order.java:55)... 이 에러는 메모리가 꽉 찰 경우 JVM이 에러를 발생시킨다. java.lang.StackOverflowError 이 에러는 사용..

java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpR..
@SpringBootTestclass MemberRepositoryTest { @Autowired MemberRepository memberRepository; // memberRepository 연결 누가 어떻게 하는 거지? @Test @Transactional public void testMember() throws Exception { //given Member member = new Member(); member.setUserName("memberA"); member.setId(1L); //when Long saveId = memberRepository.save(member); Mem..

7/30 모각소 모임 전 개인 공부 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 스프링 없이 만든 순수한 DI 컨테이너는 AppConfig를 요청할 때마다 객체를 새로 생성한다. 따라서 메모리 낭비가 발생한다. 싱글톤 패턴은 이를 해결하기 위해 객체를 1개만 생성하고 이를 공유한다. 싱글톤 패턴 클래스의 인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴이다. private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 한다. 하지만 이렇게 싱글톤 패턴을 구현하면 코드가 길어지고 클라이언트가 구체 클래스에 의존해 DIP, OCP를 위반한다. 따라서 이에 대한 해결책으로 스프링 빈을 활용한다. 싱글톤 패턴을 활용하여 이미 만들어진 객체를 공유해서 효율적으로 재사용..
회원 웹 기능 - 홈 화면 추가 @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } localhost:8080을 치면 home.html의 파일을 내려준다. 회원 웹 기능 - 등록 @GetMapping("/members/new") public String createForm(){ return "members/createMembersForm"; } localhost:8080에서 회원가입을 누르면 localhost:8080/members/new로 이동하고 members/createMembersForm.html의 파일을 내려준다. members/createMembersForm.html의..

1. 컴포넌트 스캔과 자동 의존관계 설정 2. 자바 코드로 직접 스프링 빈 등록하기 컴포넌트 스캔과 자동 의존관계 설정 MemberController가 MemberService와 MemberRepository를 사용할 수 있게 의존관계 준비 @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } } 생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에 찾아서 넣어준다. 이렇게 객체 의존관계를 외부에..

정적 컨텐츠 웹 브라우저가 localhost:8080/hello-static.html 내장 톰켓 서버가 먼저 요청 받는다. 스프링한테 넘기고 스프링은 먼저 컨트롤러 쪽에서 hello-static이 있는지 찾아본다. 컨트롤러가 먼저 우선순위를 가짐 없으면 resources 안에 있는 static/hello-static.html을 찾는다. 서버에서 하는 일 없이 파일을 그냥 그대로 웹 브라우저에 내려준다. MVC와 템플릿 엔진 MVC : Model, View, Controller 다음과 같이 분리했다. View는 화면을 그리는데 집중한다. Controller나 Model과 관련된 부분들은 비즈니스 로직과 관련 있거나 내부적인 것을 처리하는데 집중한다. model이라는 것에 화면에서 필요한 것들을 담아가지고 ..