분류 전체보기 27

[IntelliJ] The specified project directory does not exist

나다. 이 글이 뭐하는 글이냐면 우리는 매일 어제와 다른 오늘을 맞이한다. 우리의 프로젝트 또한 어제와 다른 오늘을 맞이한다. 마지막 종료 후 다음날 다시 켰을때 갑자기 왠 개같은 오류들이 뿜어져나오는 경우는 아마 다들 겪어보셨으리라는 생각이 든다. 나 또한 오늘 마찬가지의 경우를 겪었다. 그냥 어제 하던거 다시 켰을 뿐인데 갑자기 프로젝트가 개병X이 되어있길래 해결은 했지만 다른 이들도 똑같이 겪을 수 있는 일이기 때문에 글을 쓴다. 그리고 이게 짧아서 쓰기 편함 ㅋㅋ 단, 이 경우는 Gradle을 쓰는 경우로 한정되어있다. 어떤 오류냐면 The specified project directory ~~~(대충 님 디렉토리 구조) does not exist 다음과 같은 오류를 보신적이 있을 수도 있다. 이..

Info 2022.12.31

[JPA] 연관관계 맵핑(다대일 / N:1)

나다. 이 글이 뭐하는 글이냐면 JPA는 객체와 데이터베이스의 싱크를 맞춰 객체로 데이터베이스를 쪼물딱거릴 수 있게 하는 기능을 가지고 있다. JPA가 그 둘을 이어주는 교량의 역할을 하지만 결정적으로 "어떤 요소를 어떤 요소에 이어줄지" 명시하는 것은 필수적이다. 삼라만상 모든 일들이 같다. 이번 글에서는 그 방법에 대해 예시와 함께 알아보자. 객체를 테이블에 맞추면? 먼저, 객체를 테이블에 맞추어 모델링 한 경우에 대한 예를 보자. 우리가(You) 배가 고파 전화를 통해 동네에 하나뿐인 중국집 청룡각(BlueDragonR, 간짜장/찹쌀탕수육 밖에 할 줄 모름)에 주문을 한다고 치자. @Entity @Getter @Setter public class You { @Id @GeneratedValue @Co..

JPA 2022.12.28

[JPA] JPA와 PK 그리고 Id

나다. 이 글이 뭐하는 글이냐면 오랜만에 글을 쓴다. "요세 무슨 일이 이렇게도 많은지" 라는 핑계로 잠깐 놀다가 왔다. 이번 글에서는 영속성 컨텍스트에서 특정 컨텐츠를 다루기 위해서 필수적으로 있어야만 했던 Id(식별자)와 그 값의 사용 전략들에 대해 알아볼거다. 아이디를 부여하는 방법 모든 일에는 순서가 있다고 했던가. 먼저 아이디를 사용하고 싶다면 아이디를 만들어야 사용할 수 있을 것이다. 우리는 간혹 테스트코드를 만들거나 간단히 어떤 요소를 테스트하고 싶을때 임시적으로 Long id = 1L; item.setId(++id); 와 같이 사용하고는 한다. 물론 아이디를 부여함에는 변함이 없으며 자동으로 1씩 증가하기 때문에 모든 요소에 중복되지 않는 고유적인 아이디를 부여함은 변하지 않는다. 하지만 ..

JPA 2022.12.28

[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] int와 Integer의 차이

나다. 이 글이 뭐하는 글이냐면 여러분은 int와 Integer에 대해 알고있는가? 무릇 int라 함은 Java를 배울 때 가장 먼저 만날 수 있는 정수형 변수를 이야기한다. long도 정수형인데요? 라고 말한다면 맞는 말이다. 나는 int형에 대해 말하는 중이니 조용히하기 바란다. 어차피 다른 애들도 int , Integer의 관계와 비슷하다. 먼저 간단한 표로 int와 Integer를 알아보자. 이름 int Integer 자료형 기본 자료형(원시 타입) 참조 자료형(참조 타입) Null 허용 ㄴㄴ 안됨.(0은 null 아님.) 허용 십가능 연산 허용 십가능 unboxing 하기 전에는 안됨. 이 새X 뭐임? 객체 아님. 객체임.(Class임.) int는 먼저 int는 원시 타입으로 정수를 저장하면 정..

Java 2022.12.19

[Java] List<Integer> <-> int[] 변환

나다. 이 글이 뭐하는 글이냐면 프로그래머스 라는 사이트에 대해 알고있는가? https://programmers.co.kr/ 다양한 문제를 풀어볼 수 있다. 프로그래머스에서 문제를 풀다보면 int 타입의 배열을 반환하도록 요구하는 문제들을 만날 수 있다. 물론 반환 타입을 바꾼 후 같은 결과값을 가진 다른 반환 타입을 제출한다면 정답으로 인정하지만 그건 출제자의 의도와 맞지않다 생각해 난 처음 요구하는 타입을 맞춰 제출하는 편이다. 나는 무지성이다. 그래서 선언 할 때 사이즈를 정하는 int 배열을 사용하는 것 보다 List를 사용하여 답을 도출 한 후 List를 배열로 바꿔 제출하는 것을 선호하는 편이다. 이 방식을 몰랐던 응애가 아닌 정자 수준이였던 시절 나는 매일 생각했다. 아 X발 배열 크기 선언..

Java 2022.12.18

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

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

Java 2022.12.17