영속성 컨텍스트2 1. 엔티티 조회, 1차캐시 영속성 컨텍스트(entityManager)는 1차캐시를 들고있습니다. @Id 는 해당 Table의 PK가 됩니다. @Entity는 해당 객체자체가 됩니다 (ex: member) Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); // 1차 캐시에 저장됨 em.persist(member); // 1차 캐시에서 조회 Member findMember = em.find(Member.class, "member1"); member객체를 저장하면 캐시로 인해 조회가 가능합니다. em.find를 통해 조회를 하려고하면 JPA는 영속성컨텍스트에서 DB를 보는게 아니라 1차캐시를..
영속성 관리 JPA에서 가장 중요한 2가지는 아래와 같습니다. 객체와 관계형 데이터베이스 매핑하기() DB를 어떻게 설계하고 매핑할 것인지 영속성 컨텍스트 실제 JPA는 어떻게 동작하는지 이해하기 JPA를 쓰게되면 엔티티 매니저 팩토리와 엔티티 매니저를 이해해야합니다. 웹 어플리케이션 개발 시 고객의 요청이 온다면 EntityManager 생성이 됩니다. EntityManager는 DB Connection을 생성합니다. 영속성 컨텍스트란? JPA를 이해하는데 가장 중요한 용어로써 엔티티를 영구 저장하는 환경 이라고 합니다 아래 코드는 해당객체를 DB저장하는것 뿐만 아니라, 엔티티 매니저를 통해 엔티티를 영속성 컨텍스트라는 공간에 저장한다는 의미입니다. EntityManager.persist(entity)..
오늘부터 JPA공부를 시작해볼까 한다. 아래 내용들은 JPA의 전반적인 맛보기 내용이고 앞으로 김영한님의 자바ORM표준 JPA프로그래밍 - 기본편 을 보면서 공부해 나갈 것 이다. JPA를 왜 사용해야하는가? SQL 중심적인 개발에서 객체 중심으로 개발이 가능하다. 생산성과 유지보수에 좋다. 컬럼 하나가 추가되는경우 모든 SQL문을 하나씩 수정할 필요가 없어진다. 패러다임 불일치 해결 SQL은 데이터 중심이고 Spring의 객체지향 사이에서의 패러다임 불일치를 해결해준다. 데이터 접근 추상화와 벤더 독립성 명령문 맛보기 CRUD는 다음과 같다. 저장 : jpa.persist(member) 조회 : Member member = jpa.find(memberId) 수정 : member.setNam("변경할 이..
[10분 테코톡] 디디의 Redis Redis 개요 Cache 개념 Redis 자료구조 Redis 주의사항 Redis 개요 Remote dictionary server 입니다. Remote는 외부 dictionary는 Key-Value 형식의 자료구조 DB이 server 서버 즉, 외부에서 dictionary 저장하는 자료구조 서버라고도 할 수 있습니다. 여기서 Quiz를 32bit CPU Int 최대값은? 21억~ Key값이 너무 많아져서 쿠팡에서 오류가 발생했다 하여 int에서 long으로 데이터형식을 변환했다. 궁금? Redis는 휘발성이 가능하면서 빠른 DRAM에 Cache를 저장해놓지않았나? 왜 CPU에서 오류가 난걸 예시로 드는걸까? Master랑 Slack 서버를 말하는걸까? Redis란 아..
Nginx는 왜 점유율이 1등일까?! Ngnix는 Naver, Kakao, NETFLIX, GitHub등 많은 대기업에서 사용하고 있다. 그만큼 인증된 서비스라는것이다! 설명흐름은 아래와 같다 WHAT : Ngnix란 무엇일까? WHY : Ngnix는 왜 써야하는가? HOW : Ngnix는 어떻게 적용하면되는가? 1. WHAT : Ngnix란 무엇일까? 전체적인 흐름은 브라우저에서 클라이언트 요청이 있으면 WebServer(Ngnix)는 WAS에 해당요청을 보내고 DB를 조회하여 WebServer에서 페이지를 클라이언트에게 전달해주는 흐름입니다. 그렇다면 WebServer와 WAS의 차이점이 뭘까요?! WebServer ? 정적인 파일(HTML, CSS, JS)을 응답해주는 것으로 Ngnix, Apach..
String vs StringBuffer vs StringBuilder String String은 내부의 문자열을 수정할 수 없다. 즉, String을 수정할 때마다 [힙]영역 참조되는 객체를 수정하는 것이 아닌 [힙]영역에 계속 객체가 생성되어 [스택]영역의 참조주소가 변한다. 이렇게 문자열을 수정할때마다 새로운 객체를 생성하는 String의 단점을 보완하고자 StringBuffer와 StringBuilder가 나왔다. StringBuffer, StringBuilder 공통점 버퍼(buffer:데이터를 임시로 저장하는 메모리)에 문자열을 저장한다. 버퍼 내부에서 데이터를 추가/수정/삭제 작업을 진행하기때문에 String처럼 새로운 객체를 계속생성하지 않는다. 차이점 멀티 스레드 환경 : StringBu..
3부 스프링 부트는 어떻게 버전관리를 할까? 1. 의존성 관리 이해 pom.xml파일로 들어가보면 parent라는 코드가 있습니다. org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE spring-boot-starter-parent를 Alt+Click 하면 spring-boot-starter-parent-2.0.3.RELEASE.pom 이라는 파일이 나옵니다. spring-boot-starter-parent-2.0.3.RELEASE.pom 아래 내용은 해당 파일의 일부입니다. 아래 내용처럼 환경설정 파일을 관리해주고 org.springframework.boot spring-boot-dependencies 2.0.3.RELEASE ../....
01. 포크/소프트포크/하드포크/세그윗 1. 포크(Fork) 포크(Fork) 또는 소프트웨어 개발 포크(project fork)는 개발자들이 하나의 소프트웨어 소스 코드를 통째로 복사하여 독립적인 새로운 소프트웨어를 개발하는 것을 말한다. 오픈소스 소프트웨어의 경우 소스코드가 공개되어있고, 통째로 복사하는 것이 허용되는 라이선스를 따르기때문에 원저작자의 허가 없이 포크를 통한 새로운 소프트웨어 개발이 가능하다. 2. 소프트포크 블륵체인에서 소프트 포크(soft fork)란 기존 블록체인에 큰 영향을 미치지않고 단순 오류를 수정하는 버전 업그레이드를 의미하다. 채굴자 : 반드시 신 버전으로 업그레이드를 해야함 일반 사용자 : 구버전과 신버전 모두 사용이 가능하다. 3. 하드 포크(Hard Fork) 하드 ..
- Total
- Today
- Yesterday
- install
- 차이
- container
- 중간연산
- 최종연산
- mvn
- 영속성 컨텍스트
- vscode
- 자바8
- webpack
- Vue
- AnnotationConfigApplicationContext
- JPA
- lambda
- java
- nginx
- stream
- BeanFactory
- springboot
- MAC
- elasticsearch
- 스트림
- map
- ApplicationContext
- docker
- Intellij
- ngnix
- Vuex
- NPM
- 람다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |