반응형

분류 전체보기 145

[JAVA] JVM

JVM(Java Virtual Machine) JVM이란? Java의 가장 큰 특징 중 하나는 OS(Operating system)에 독립적이라는 것 입니다. 먼저, 개발자가 .java파일을 생성합니다. 이를 Java Compiler의 javac라는 명령어를 이용해 컴파일하여 .class파일을 생성합니다. .class파일은 Bytecode로 되어있는데 이는 아직 컴퓨터가 읽을 수 없습니다. JVM은 Bytecode를 OS가 이해할 수 있도록 해석해줍니다. JVM이 Bytecode를 해석하는 단계가 추가되어 속도가 느렸지만 JIT(Just In Time) 컴파일러를 통해 이러한 점을 극복했습니다. JVM의 구성요소 JVM의 구성요소는 크게 Class Loader, Runtime Data Area, Excu..

Java 2021.02.07

[MySQL] ROWNUM 사용하기

위와 같은 테이블이 있을 때 SELECT @ROWNUM := @ROWNUM + 1 AS rownum, table.* FROM table, (SELECT @ROWNUM := 0) tmp ORDER BY birth ASC 역순으로 정렬하면서 rownum을 가져오고 싶은 경우 어떻게 해야 할까 SELECT @ROWNUM := @ROWNUM + 1 AS rownum, table.* FROM table, (SELECT @ROWNUM := 0) tmp ORDER BY birth DESC 단순하게 ORDER BY만 바꾸면 원하는 결과를 얻지 못합니다. SELECT * FROM (SELECT @ROWNUM := @ROWNUM + 1 AS rownum, table.* FROM table, (SELECT @ROWNUM :..

Database/MySQL 2020.09.23

[JAVA] 반복문에서 String 변수의 선언 위치

반복문 내에 String 변수 선언하는 것은 성능에 나쁜 영향을 끼친다라는 얘기를 어디선가 들은 적이 있습니다. 아마 반복문 내부에 변수를 선언하면 매 번 변수를 초기화하지 않을까 라는 생각에 이런 얘기를 하는 것 같습니다. 사실 뭐 큰 상관은 없지만 단순히 궁금해서 찾아보았습니다. 결론부터 얘기하면 컴파일러가 자동으로 최적화해줘서 동일한 바이트코드를 갖습니다. 참고 1 : http://livingtao.blogspot.com/2007/05/myth-defining-loop-variables-inside.html 참고 2 : https://stackoverflow.com/questions/8803674/declaring-variables-inside-or-outside-of-a-loop 변수 scope ..

Java 2020.08.19

[JPA] 기본 키(PK) 매핑 방법과 생성 전략

기본 키(Primary key)? 주 키 또는 프라이머리 키라고 하며, 관계형 데이터베이스에서 레코드의 식별자로 가장 적합한 것으로 선택, 정의된 후보 키입니다.(출처: 위키백과) 기본 키의 (제약) 조건 기본 키는 데이터베이 테이블의 레코드를 식별하기 때문에 따라오는 제약 조건이 있습니다. 기본 키의 값은 고유해야 하며(중복 X) 변하지 않아야 합니다. 두 개 이상의 열을 기본 키로 설정한 경우 한 열에 중복된 값이 있을 수는 있지만 기본 키에 정의된 모든 열의 값의 조합은 고유해야 합니다. 기본 키는 NULL값을 허용하지 않습니다. 테이블은 하나의 기본 키만 가질 수 있습니다. 기본 키 선택 전략 자연 키(natural key) : 주민등록번호, 이메일, 전화번호 등과 같이 비즈니스적인 의미가 있는 ..

Spring 2020.08.18

[JPA] Persistence Context(영속성 컨텍스트)

Persistence Context EntityManager로 Entity를 저장하거나 조회하면 EntityManager는 영속성 컨텍스트에 Entity를 보관하고 관리합니다. 영속성 컨텍스트는 논리적인 개념에 가까우며 EntityManager를 생성 할 때 하나 만들어집니다. 그래서 J2SE환경에서는 EntityManager와 Persistence Context가 1:1로 매칭이 되지만 J2EE환경에서는 N:1로 매칭이 가능합니다.(스프링에서 EntityManager를 주입받아서 사용하면, 같은 트랜잭션 범위에 있는 EntityManager는 동일한 Persistence Context에 접근합니다.) 영속성 컨텍스트의 특징 Entity를 식별자 값(@Id로 테이블 기본키와 매핑한 값)으로 구분합니다. ..

카테고리 없음 2020.08.17

[JPA] Entity EntityManager EntityManagerFactory PersistenceContext

Entity 테이블에 대응하는 클래스입니다. Entities in JPA are nothing but POJOs representing data that can be persisted to the database. An entity represents a table stored in a database. Every instance of an entity represents a row in the table. 출처 : https://www.baeldung.com/jpa-entities EntityManager Entity 객체를 관리하는 역할을 합니다. 여기서 관리란 Entity의 Life Cycle입니다. 이는 나중에 따로 포스팅 하겠습니다. EntityManager는 관리하는 Entity를 Persis..

Spring 2020.08.05