전체 글 19

[JPA] 영속성 컨텍스트와 Flush

나다. 이 글이 뭐하는 글이냐면 저번 글에서 영속성 컨텍스트의 개념과 엔티티의 상태에 대해 알아봤으니 이제 실질적으로 persist를 통해 엔티티를 영속성 컨텍스트에 집어넣었을 때 일어나는 동작들과 영속성 컨텍스트의 부속적인 요소 등에 대해 알아보려 한다. 그래서 영속성 컨텍스트의 특징과 장점은? 1. 영속 상태의 엔티티는 무조건 식별자 값을 가지고 있어야 한다. - JPA는 식별자 값을 통해 컨텐츠를 구분한다. 없으면 안됨. 2. Flush를 통한 데이터베이스와 영속성 컨텍스트의 동기화. - Flush를 통해 영속성 컨텍스트에 일어난 변화를 데이터베이스와 동기화한다. 3. 1차 캐시 캐시데이터 라는 말을 들어본 적이 있는가. 우리가 자주 가는 웹사이트들은 어쩐지 로딩이 존X 빠르다고 느끼며 "오 역시 ..

JPA 2022.12.22

[JPA] 영속성 컨텍스트란 무엇인가.

나다. 이 글이 뭐하는 글이냐면 이번 글은 JPA의 영속성 컨텍스트에 대해 설명하기 위해 작성한다. 무릇 JPA를 배우기 시작하며 가장 처음 접하는 단어가 "영속성 컨텍스트" 이지 않나 싶다. 그 만큼 영속성 컨텍스트란 JPA의 핵심적인 부분이라 볼 수 있는 부분이다. 영속성 컨텍스트와 친구들 영속성 컨텍스트에 대해 알기 전 먼저 알아야 할 친구가 남아있다. Entity(엔티티)와 EntityManager(엔티티 매니저) 간단하게 설명하면 엔티티는 테이블과 연결될 객체 엔티티 매니저는 그 객체를 영속성 컨텍스트에 보관하거나 조회하는 등 사용자가 원하는 액션을 취한다. 그렇다면 오늘의 주제인 "영속성 컨텍스트"란 무엇인가. 영속성 컨텍스트란 당신과 데이터베이스 사이에 객체를 보관하기 위한 "임의의 공간"을..

JPA 2022.12.22

[모바일게임] 데미갓 키우기를 아십니까.

나다. 이 글이 뭐하는 글이냐면 본인은 개발은 허접이나 또 노는건 좋아해서 정신 못차리고 게임을 한다.물론 방치형이라 그렇게 오랜 시간을 투자하는 것은 아니지만 오랜만에 만난 갓겜의 냄새에홀린 듯이 요즘들어 하고있는 게임을 소개 해보려한다. 데미갓 키우기 제작사: 루트쓰리게임즈 출시일: 2022년 10월 26일 https://cafe.naver.com/demigodidle 따로 공식홈페이지를 운영하는 것은 아니고, 네이버 카페 / 라운지에서 공식홈페이지 처럼 소통한다. 나름 운영자와 유저의 소통이 원활히 진행되는 몇 안되는 게임 중 하나다. 원활하다기보다 그냥 항시 열려있다고 보는게 맞겠다. 피드백이 존X 빠름. 뭐하는 게임임? 게임의 컨셉에 맞게 데미갓 키우기는 두 가지 종류의 전투를 지원한다. 보스를..

게임 2022.12.21

[JPA] JPA란 무엇인가.

나다. 이 글이 뭐하는 글이냐면 본인은 요즘 JPA에 대해 배우고 있다. 필수적인 기술이 될 전망이라기도 하고 무엇보다 꽤 재미있으니 기록으로 남겨 혹여나 필요한 사람이 있다면 같이 볼 수 있도록 하려한다. 좋은건 나눠쓰라는 말도 있지 않은가. Java Persistence API 이하 JPA는 Java Persistence API의 준말이다. 간혹 API가 무엇인지 감을 잡지 못하는 사람들이 있어 간단히 API에 대해 말하자면 어떤 대상을 이용하기 위한 메뉴얼이라 생각하면 편하게 이해할 수 있겠다. 예를 들어, 우리가 배가 고파 청룡각에 갔다고 가정하자. 가게에 가서 하는 것이 무엇인가? 우리가 가게에서 가장 먼저하는 것은 "메뉴판"을 보는 일이다. 만약 지금 당신은 "탕수육"을 먹고싶다. 그렇다면 다..

JPA 2022.12.20

[JAVA] 다이아몬드 연산자가 뭐임?

나다. 다이아몬드 연산자 맞다. 사실 글쓰기 귀찮은데 다이아몬드 연산자는 내용이 존X나 짧아 농땡이 칠 생각으로 선정했다. 끝 이다. 이렇게 올리면 나중에 이 개X끼는 광고를 달 자격이 없다고 욕하는 사람들이 있을 수 있으니 조금 더 자세히 쓰겠다. 다이아몬드 연산자는 JAVA 7에서 탄생한 하나의 편의성 문법이다. 사용법 여러분은 ArrayList에 대해 알고 있는가? 모른다면 구글에 찾아보기 바란다. 우리가 ArrayList를 사용 할 때 먼저 new 연산자를 통해 생성하게 된다. List memberList = new ArrayList(); JAVA 7 이전에는 위의 사용을 List memberList = new ArrayList(); 다음과 같이 선언 후 사용해야했다. 맞다. 끝에 에서 타입이 빠..

Java 2022.12.17

[Spring] .properties와 .yml의 작성법에 대해 알아보자.

나다. 이 글이 뭐하는 글이냐면스프링 부트를 사용하면 기본적으로 설정되는 파일인 application.properties를 본 적이 있지 않은가.못 봤을 리는 없을 것이다. (못 봤으면 라섹수술 권장) 나는 처음 이 파일을 접했을 때 어플리케이션의 전반적 설정을 관장하는 파일로 이해하고 받아들였다.(허접 입장에서 봤을 때 사실 이게 반쯤 맞는 말이기도 함.) properties와 yml파일에서 지원하는 기능과 우선순위가 존X게 많지만 이번 글은그걸 알아보는게 아닌 그냥 작성법과 그 차이에 대해 알아보는 글이니 그건 설명하지 않겠다. 이 번 글에서는 application.properties와 application.yml의 작성법과 차이점에 대해알아보자. 이 블로그는 허접이 작성하는 블로그이기 때문에 허접..

Spring 2022.12.15

Spring Boot 3.0버전 나옴 ㅋㅋ

나다. 먼저 3.0 업데이트 공식 링크부터 첨부하겠다. https://spring.io/blog/2022/11/24/spring-boot-3-0-goes-ga Spring Boot 3.0 버전이 출시되었다길래 안 읽어보고 허겁지겁 만들어서 돌려봤다. 결론부터 말하자면 Spring Boot 3.0부터는 기본적으로 jdk 17버전 이상을 사용해야 한다. Spring Boot 2.x대 버전을 사용하던 우리는 대부분 11.0.xx버전을 사용하고 있었을 것이다. Baseline이 java 17로 잡혔기때문에 그 이하 버전은 탐색되지 않아 발생하는 현상이니 3.0 버전을 사용하고 싶은 유저가 있다면 jdk를 17버전 이상으로 업그레이드 하시길 바란다. 간략히 몇 가지 변경점에 대해 이야기 하자면 3.0 쓰고싶으면 ..

Spring 2022.12.13

[Thymeleaf] 사용하고 싶다면 주입과 설정부터

주입부터 합시다. 우리는 개발을 진행하며 많은 라이브러리를 사용한다. JSON을 사용하고 싶다면 Jackson 또는 Gson, 데이터베이스를 연결하고 싶다면 JDBC Driver, Mybatis, Spring Data Jpa 등 많은 것들을 사용하게 된다. 이 모든 것들의 공통점이 무엇일까? 당신이 만약 Gradle을 사용하고 있다면 build.gradle에 추가하게 될 것이고 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' } // build.gradle 임. Maven을 사용하고 있다면 pom.xml에 추가하게 될 것이다. org.springframework.boot spring-boot-sta..

Thymeleaf 2022.12.13

Thymeleaf(타임리프) 에 대해 알아보자.

그래서 타임리프가 뭐임? Spring Boot에서 권장하는 강력한 ‘Natural template engine’ Thymeleaf는 웹 및 웹이 아닌 환경 모두에서 작동할 수 있는 Java XML/XHTML/HTML5 템플릿 엔진입니다. MVC 기반 웹 애플리케이션의 뷰 레이어에서 XHTML/HTML5를 제공하는 데 더 적합하지만 오프라인 환경에서도 모든 XML 파일을 처리할 수 있습니다. 대충 Johnna 강하다는 뜻. 간단하게 사용자가 요청한 페이지에 들어갈 값들을 뿌려주는 친구라고 생각하는 것이 이해하기 쉽겠다.(피자 토핑 뿌리듯이. 나는 포테이토 피자 좋아함.) 통상 자바에서 웹 개발을 할 때 JSP / JSTL를 이용한다. 진짜 좀 구린거 같음. //만약(if) 세션 안 멤버의 이름이 'jstl..

Thymeleaf 2022.12.13