전체 글
-
영속성 컨텍스트(Persistent context)JPA 2022. 4. 26. 09:32
영속성 컨텍스트(Persistent context) JPA에서 가장 중요한 2가지 - 객체와 RDB 매핑하기 - 영속성 컨텍스트 : 엔티티를 영구저장하는 환경 (애플리케이션과 DB의 중간계층 느낌) 엔티티 생명주기 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 Member member = new Member(1L,"kim"); //객체 생성, 비영속상태 영속(managed) : 영속성 컨텍스트에 관리되는 상태 em.persist(member); // 앤티티매니저에 persist 시 객체는 영속상태가 된다 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 em.persist(member); //영속상태 Member findMember = em.f..
-
IntelliJ 내가 자주사용하는 단축키 정리정리 2022. 3. 30. 09:28
인텔리제이 내가 자주 쓰는 단축키들 (설정 KeyMap ->MacOs 기준) 단축키 이름 설명 ⌥ + ENTER ⌘ + N Generate... Constructor,Getter,Setter 등 자동 생성, 새로운 파일(패키지,클래스 등) 생성 ⌘ + Shift + ENTER Complete Current Statment 현재 라인 자동완성 ⌘ + ⌥ + V Introduce Variable... 현재 코드 반환값 생성 ⌘ + ⌥ + M Exctract Method... 현재 코드 메서드로 추출 ⌘ + Shift + T Go to Test 현재 메서드 테스트 생성 ⌘ + B Go to Declaration or Usages 선언위치로 이동 Shift + F6 Rename.. 변수명 수정(Refactor ..
-
SOLID정리 2022. 2. 21. 23:39
SOLID원칙 이란 러이 2000년대 초반 로버트 마틴이 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다.[3] SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다. 출처 : 위키백과 1. 단일책임 원칙(Single Responsiblity Principle) 하나의 객체는 하나의 책임만 가져야한다. 모든 클래스는..
-
스프링 빈 조회하기Spring 2022. 2. 21. 00:33
컨테이너에 등록된 빈들이 정상적으로 등록되었는지 확인해보자 ▷ 테스트코드 작성 @Test @DisplayName("모든 빈 출력") void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(beanDefinitionName); System.out.println("name " + beanDefinitionName+ "bean = " + bean); } } ▷ 결과 AppConfig 를 포함한 클래스가 빈으로 잘 등록된게 보인다! getBeanDefinationNames() 를 ..
-
제네릭(Generic)JAVA 2021. 10. 28. 15:20
제네릭(Generic)은 다양한 타입의 객체를 다루는 메서드나 컬랙션 클래스의 타입을 지정해준다. 제네릭(Generic)은 컴파일시 타입체크를 하게 도와준다. 타입의 모호함 제네릭이 등장하기 전 자바는 타입 캐스팅시 발생하는 타입의 모호함 때문에 문제를 겪었다. public static void main(String[] args) { List g1 = new List(); g1.add(500);//autoBoxing g1.add(100);//autoBoxing g1.add("Hello"); //String System.out.println(g1.get(0)); //O System.out.println((Integer)g1.get(1)); //O System.out.println((Integer)g1.ge..
-
자바 가상머신(JVM) 의 구조JAVA 2021. 5. 14. 23:41
자바 프로그램이 실행될 때 어떤 방식으로 메모리에 올라가서 실행이 되는지 알아보겠습니다. 자바 프로그램 실행 과정 먼저 자바는 OS나 하드웨어에 상관없이 "*.java" 파일을 JAVA컴파일러(javac)가 컴파일 시키면 자바 바이트코드로 이루어진 "*.class" 라는 파일로 바뀌게 됩니다. 이렇게 만들어진 class파일을 JVM이 로딩을 하여 실행시키게 됩니다. 그러면 자바바이트로 변환된 class는 JVM 에서 로딩되어 실행 되는지 자세히 알아보겠습니다. 자바 가상머신(Java Virtual Machine) JVM은 JRE(Java Runtime Environment/자바 런타임 환경)에 들어있는 프로그램입니다. ~ JRE는 JVM에서 실행하기 위한 자바 애플리케이션을 로드하는 온디스크 프로그램이다..
-
메모리 구조CS 2021. 5. 13. 23:25
우리가 컴퓨터에서 프로그램을 실행하면 메모리에서 어떤 방식으로 실행되는지를 알아봅시다. 먼저 우리가 프로그램을 실행 시키게 되면 운영체제(OS)는 보조기억장치(HDD, SSD)에서 해당 정보를 로드하여 메모리(RAM) 라는 공간에 할당을 해주게 됩니다. 그리고 메모리에 할당된 작업들이 주기억장치(CPU)가 처리를 하는 형식으로 진행됩니다. 그렇다면 메모리에 할당될때 구체적으로 공간에 할당이 되는지 좀 더 자세히 알아보겠습니다 메모리는 크게 코드(code)영역, 데이터(data)영역, 힙(heap)영역, 스택(stack)영역 으로 나뉩니다. 코드(code)영역으로 갈수록 낮은주소, 스택(stack)영역 으로 갈수록 높은 주소를 사용합니다. 코드(code)영역 코드영역은 text영역 이라고도 하며 실행되는 ..
-
서브쿼리(Subquery)DB 2021. 5. 7. 15:33
서브쿼리(Subquery) 하나의 SQL문에 또 하나의 SQL문이 포함되는 경우 서브쿼리는 내부에 또 다른 서브쿼리 포함가능 종류 서브쿼리 위치가 WHERE 또는 SELECT의 리스트에 포함되어있을때 - 단일행 서브쿼리 : 서브쿼리의 결과값이 하나 일 때 -다중행 서브쿼리 : 서브쿼리의 결과값이 여러 개일 때 서브쿼리 위치가 FROM 에 포함되어있을때 -인라인뷰 : 서브쿼리가 FROM 절에 사용될 경우 서브쿼리가 포함 가능 한 구문 1. SELECT 절 2. FROM 절 3. WHERE 절 4. HAVING 절 5. ORDER BY 절 6. INSERT 문의 VALUES 절 7. UPDATE 문의 SET 절