전체 글 10

[JPA] 영속성 관리, 영속성 컨텍스트

웹 어플리케이션에 엔티티매니저 팩토리는 하나만 만들고, 요청이 들어올때마다 엔티티 매니저를 생성한다. 그리고 DB 내부적으로 connectionPool을 사용한다. 영속성 컨텍스트(Persistence Context) ? 영속성 컨텍스트란 "엔티티를 영구 저장하는 환경"이라는 뜻이다. 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다.EntityManager.persist(entity);사실 위 코드는 DB에 엔티티를 저장한다기 보다는 영속성 컨텍스트를 통해 엔티티를 영속화 한다는 의미이다. ( 즉, 영속성 컨텍스트에 저장 한다는 의미이다. ) 영속성 컨텍스트는 논리적인 개념이며, 눈에 보이지 않는다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한..

[JPA] Entity와 EntityManager, EntityManagerFactory

EntityDB에 member라는 테이블이 있고, 해당 테이블의 스키마가 다음과 같다고 해보자.create table Member (id bigint not null, name varchar(255), primary key(id));그렇다면 엔티티는 다음과 같이 만들 수 있다. 엔티티는 JPA가 관리할 객체이며, DB의 테이블과 매핑된다.import jakarta.persistence.Entity;import jakarta.persistence.Id;@Entitypublic class Member { @Id private Long id; private String name; //Getter, Setter ...}기본적으로 JPA는 모든 필드를 불러오게 끔 구현되어 있다. ..

[JPA] 데이터베이스 방언, Dialect

JPA는 특정 데이터베이스에 종속적이지 않은 기술이다. 따라서 다른 데이터베이스로 손쉽게 교체할 수 있다.  SQL은 표준 SQL인 ANSI SQL이 있으며, ANSI SQL 이외에 각 DBMS Vendor인 MS-SQL, Oracle, MySQL, PostgreSQL에서 자신만의 기능을 추가한 SQL이 있다. ANSI SQL이 모든 DBMS에서 공통적으로 사용가능한 핵심 표준 SQL이지만, 여러 제품의 DBMS에서는 자신만의 독자적인 기능을 위해 추가적인 SQL을 만들었다. 즉,  각 데이터베이스가 제공하는 SQL 문법과 함수가 조금씩 다르다는 문제점이 있다. 예를 들면 다음과 같은 차이점들이 존재한다. 데이터 타입 : 가변 문자 타입으로 MySQL은 VARCHAR, 오라클은 VARCHAR2를 사용한다..

정보처리 기사 응시자격 서류, 4학년 휴학생

일단 글을 작성하기 앞서, 필자는 컴퓨터공학 계열 학생이며, 3학년 2학기 까지의 과정을 마친 후 4학년 1학기 등록금을 납부 후 휴학을 한 상태이다. 그런데 휴학 증명서를 뽑아 보니, 3학년으로 찍혀있었고.. 학교 측과 큐넷에 문의해보니 학력변동 확인서를 작성후 교무처장 직인을 받으면 된다는 답을 얻게 되었다! 정보처리 기사 응시자격 서류 준비 실기를 접수하기 전에 응시자격 서류 제출은 필수이다. 만약 이 기간에 서류를 제출하지 않으면, 필기시험을 봤던것도 무효이며 실기를 접수할 수 없게 된다. 현재 나는 4학년 등록을 한 후 휴학을 신청했지만, 휴학증명서에 3학년이라고 찍혀있었다. 블로그에 찾아보니 다들 4학년 등록 후 휴학을 하면, 4학년이라 찍히기 때문에 정처기를 볼 수 있다 라고 했었기에.. 나..

일상../자격증 2024.03.19

2024 정보처리기사 1회 필기 합격 후기, 공부방법 (Feat 4학년 휴학생, 전공자)

2024년 3월 4일에 시행한 정보처리기사 1회 필기 시험을 보고 왔다 ! 떨어지면... 올해 계획한 일정들이 전부 꼬여버리기 때문에 꼭 붙어야 된다는 생각을 가지고 준비했다. 한번도 자격증 시험을 본 적이 없었고 실기도 같이 준비하자 라는 마인드로 기간을 길게 잡고 공부했다. 그리고 필기 접수를 할 당시에 사전 정보 입력도 하고, 시간 딱 맞춰서 1시에 들어가서 시험장 찾기를 시도했으나.. 내가 살고 있는 지역에는 시험장이 없었다^^ 그 와중에 그나마 가까운 시험장은 이미 다 찬 상태이고.. 그래서 하다하다 결국 이태원 역에 있는 한국폴리텍대학에서 시험을 치게 되었다ㅜㅠ.. ( 참고로 아침에 차 밀릴까봐 6시 반에 집에서 나와서 시험장으로 갔다.. ) 그래서 시험 난이도는 어땠는가 하면 내 기준으로 쉬..

일상../자격증 2024.03.19

[JAVA] 백준 p1934 - 최소 공배수

1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 단순하게 최소 공배수를 구하는 문제이다. 이 문제에서 포인트는 최소 공배수는 A와 B 가 주어졌을 때 "A*B / 최대공약수" 를 계산해 구할 수 있다. 는 것이다. 결국 유클리드 호제법을 이용해서 최대 공약수를 구하면 해결 할 수 있다. 유클리드 호제법에 관해 정리해 둔 글이다. [JAVA] 유클리드 호제법 - 최대 공약수 구하기 최대 공약수를 구하는 방법 일반적으로 최대 공약수를 구하려고 하면 소인수 분해를 이용해서 공통된 소수들의 곱으로..

알고리즘/백준 2024.02.17

[JAVA] 유클리드 호제법 - 최대 공약수 구하기

최대 공약수를 구하는 방법 일반적으로 최대 공약수를 구하려고 하면 소인수 분해를 이용해서 공통된 소수들의 곱으로 표현한다. 그러나 소인수 분해를 위해 소수를 먼저 찾아야 하고, 찾은 소수가 두개의 수를 공통적으로 나눌 수 있는지 확인해야 하기 때문에 이는 효율적이지 않다. 유클리드 호제법을 이용하면 더 간단한 방법으로 최대 공약수를 구할 수 있다. 유클리드 호제법(Euclidean Algorithm) 두 개의 자연수(두 개의 다항식)의 최대 공약수를 구하는 알고리즘이다. 호제법이란 말은 두 수가 서로 상대방 수를 나누어 결국 원사는 후를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a,b에 대해서 a를 b로 나눈 나머지를 r이라고 하면( 단, a>b ) a와 b의 최대 공약수는 b 와 r의 최대..

[JAVA] 프로그래머스 - 소수 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 단순하게 정리하자면, 주어진 문제는 배열에 있는 숫자들 중에 3개를 골라 더했을때 소수가 되는 경우의 개수를 구하면 되는 문제이다. 처음에 딱 보고 든 생각은 다음과 같다. 3개의 수는 어떻게 뽑을 것인가..? 방법 1. ) 사실 단순한 방법은 for문을 3번 돌리면서 값을 구한뒤 , 그 값이 소수인지를 판별하는 것이다. 방법 2. ) 배열의 조합 값들을 모두 찾아내서 정리한뒤 ( 재귀나 ..

[JAVA] 에라토스테네스의 체 - 소수 구하기

가끔가다 백준이나 프로그래머스 문제를 풀다보면 소수를 구하는 문제가 있는데 그때 사용하면 아주 유용하다! 그렇다면 소수란 무엇인가?? 소수 (Prime Number) 란 ? : 자신보다 작은 2개의 자연수를 곱해 만들수 없는 1보다 큰 자연수를 말한다. 같은 의미로 1과 자기 자신만을 약수로 갖는 수, 약수를 2개만 갖는 수를 말한다. 예를 들면 2,3,5,7,11,13,,, 등이 있다. 그러면 소수를 구하는 알고리즘을 구현하려면 어떻게 해야 할까? 그냥 단순하게, 2와 타깃 숫자 사이의 어떠한 숫자로 나누어 떨어진다면 소수가 아니다. 이걸 코드로 표현한다면 다음과 같다. 시간 복잡도 O(n) private boolean isPrimeNum(int target) { for (int i = 2; i < t..