일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오 화재
- 트랜잭션
- ci/cd
- method area
- JAVA8
- 동시성
- 상태패턴
- 주문
- 리팩터링
- JDK14
- 제네릭
- springboot
- Redis
- CaffeineCache
- 공변
- nonclustered index
- 지연로딩
- 부하테스트
- Ehcache
- backend
- java
- Jenkins
- GithubActions
- lazyloading
- Spring Data Redis
- B+TREE
- JPA
- 재고 시스템
- Metaspace
- 웹캐시
- Today
- Total
목록전체 글 (31)
NDM
Java의 Checked Exception과 UnCheckedException을 검색하다 보면 이런 표를 쉽게 찾을 수 있습니다. 이 표의 일부 내용은 맞으면서도 틀렸습니다. 어떤게 틀렸을까요?? CheckedException / UnCheckedException Java의 Exception은 Throwable 하위의 객체들입니다. 그중에서도 Error는 메모리부족이나 시스템 오류같이 개발자가 접근해서는 안되는 오류들이고, Exception 객체가 개발자가 신경써야 할 영역이라고 보시면 됩니다. 때문에 그냥 제일 위에있는 객체로 예외처리를 하기 위해 throw Throwable을 한다던가 하시면 안됩니다. CheckedException 반드시 예외처리를 해야합니다. 안그러면 컴파일 오류에서 잡힙니다 잡아..
https://ndm-tech.tistory.com/3 [Java] 자바 동작 원리와 JVM 2편 : Runtime Data Area 목차 Runtime Data Area Prior Java 8 After Java 8 Runtime Data Area 프로그램 수행을 위해 할당받은 공간. 자바 메모리 공간이라고도 불림 Method Area ( Java 8 이전 ) Non-Heap 공간. Permanent를 차지하는.. ndm-tech.tistory.com 에서 Java Runtime Area에 대해 정리했습니다 다만, GC를 알아보기에 앞서 정확히 Java8 이전과 이후를 볼 때, MetaSpace 영역이 추가됨으로써 한눈에 정리되지 않는 느낌이 들어 다시한번 정리하고자 합니다 자세한건 위 포스팅을 참고해..
배달 플랫폼 API 서버 프로젝트를 진행중입니다. 매번 빌드하고 서버에 배포하는 과정을 자동화하고 시간을 단축하기 위해 CI/CD를 구현했습니다 왜 자동화를 선택했는가 두 가지 관점에서 바라보겠습니다 첫 번째는 이것을 수동으로 진행한다면, 합쳤을 때 꽤 많은 시간이 소요된다는 것입니다 프로젝트 빌드 -> 테스트 -> 패키징 압축 -> 배포 .. 하는 과정을 일일히 수동으로 한다고 생각해 보세요 귀찮은 것도 귀찮은 것이지만, 프로젝트의 크기가 커질수록 시간은 비례해서 늘어나게 됩니다 사실 제 프로젝트같이 실 서비스가 아닌 토이프로젝트에서는 이러한 첫번째 이유가 주된 이유일 것입니다 두 번째는 협업을 하는 경우에, 내가 아닌 테스터나 기획쪽 팀원이 개발 반영 사항을 확인할 수 있다는 것입니다 쉬운 이해를 위..
게시판을 만들어 보는 실습을 진행해 보려 한다 이미 몇번 게시판을 만들어 보았으나, 이번 실습은 과거에 게시판을 만들며 고려하지 않았던 것을 고려하고 왜 이런 생각이나 고민을 했으며, 어떻게 그 해결방법에 도달했는지, 그 고민을 해결하는 과정에 무게를 실으려고 한다. SpringBoot / MyBatis를 사용할 예정이고, MyBatis로 작성한 이후 JPA로 바꾸는 과정까지 실습하겠다 또한 화면은 구현하지 않고 API만 작성하도록 하겠다 요구기능 회원 회원 가입을 할 수 있다 로그인을 할 수 있다 회원은 회원 게시글에만, 비회원은 비회원 게시글에만 접근이 가능하다 게시글 게시글 CRUD ( 회원 / 비회원 모두 가능 ) 댓글 CRUD ( 회원 / 비회원 모두 가능 ) 게시글에는 조회수를 나타낼 수 있도..
목차 Delete DeleteById 둘의 차이점 https://ndm-tech.tistory.com/7 [JPA] Hibernate 6 : Save() 메소드 Deprecated 아직은 5버전이지만, Hibernate 6버전부터 Save()메소드가 Deprecated된다. https://docs.jboss.org/hibernate/orm/6.0/javadocs/org/hibernate/Session.html#save(java.lang.Object) Session (Hibernate JavaDocs.. ndm-tech.tistory.com Hibernate에서 6.0버전부터 Save()메소드를 Deprecated처리하고, persist() 사용을 권장한다고 발표했다. 이를 통해 영속성 컨텍스트의 내부 동..
아직은 5버전이지만, Hibernate 6버전부터 Save()메소드가 Deprecated된다. https://docs.jboss.org/hibernate/orm/6.0/javadocs/org/hibernate/Session.html#save(java.lang.Object) Session (Hibernate JavaDocs) Make a transient instance persistent and mark it for later insertion in the database. This operation cascades to associated instances if the association is mapped with CascadeType.PERSIST. For entities with a generat..
목차 update와 DirtyChecking Save의 동작방식 - persist와 merge 예제로 알아보자 merge 후에는 Persistence Context가 관리할까? Optional타입으로 find했다면, Persistence Context에는 Optional객체가 관리될까? Optional.get()가 관리될까? * Persistence Context를 PC로 지칭하겠다. # Update와 Dirty Checking JPA는 update를 명시적으로 호출하지 않는다. 보통 DIrty Checking이라는 방식을 사용한다. 변경 감지란 다음과 같이 작동하는 것을 말한다. PC에 관리되는 객체에 한해, PC는 초기에 해당 객체의 SnapShot을 만들어 둔다. PC에서 관리되고 있는 객체가 Sn..
목차 Java Generic이란? Java Generic을 왜 쓸까? 공변과 불공변 Generic의 동작 방식 왜 Primitive type은 Generic에서 사용할 수 없는가 ** 기본 문법에 대해서는 포스팅 하지 않습니다 ** Java Generic이란? Java 프로그래밍을 하다 보면 ArrayList , HashMap 등 안에 들어간 의문의 문자들을 볼 수 있는데 이를 제네릭(Generic)이라 한다. Data type을 특정한 type하나로 정하지 않고 사용할때마다 바뀔 수 있게 범용적이고 포괄적으로 지정한다 라는 의미이며 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미 왜 Generic을 사용하는 걸까? 비슷한 기능의 경우 재사용성이 높다. Spring을 이용해..
목차 Java Reference Type Strong Reference Weak Reference Soft Reference Phantom Reference Java Reference Type에 대해 학습한다. 다음 시간에 알아볼 GC를 보다 효과적으로 학습하기 위해서는 알아야할 필요가 있다고 판단했기 때문이다. Java Reference는 총 4가지 유형이 존재한다. Strong Reference Weak Reference Soft Reference Phantom Reference GC는 공통적으로 다음의 과정을 수행한다 GC 대상이되는객체(Garbage)들을찾는다 찾아낸 Garbage를처리한다 처리한만큼의 Heap 메모리를회수한다 GC의 대상이 되는 객체들을 찾기 위해서 Java GC는 Reachab..
목차 Runtime Data Area Prior Java 8 After Java 8 Runtime Data Area 프로그램 수행을 위해 할당받은 공간. 자바 메모리 공간이라고도 불림 Method Area ( Java 8 이전 ) Non-Heap 공간. Permanent를 차지하는 공간으로, Method Area, Static Area 등으로 불림 모든 Thread에 의해 공유되는 공간 클래스와 인터페이스, Runtime Constant Pool, 멤버 변수, 클래스 변수, 생성자와 메소드의 메타데이터를 저장하는 공간 이 공간의 메타데이터를 이용하여 물리적인 메모리를 참조하게 됨 클래스 파일의 바이트코드가 로드되는 공간 Permanent Generation 클래스 정의, 구조, 필드, 메소드, 상수로부터..