일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- virtualization
- ORM
- Java
- 가상화
- 영속성 컨텍스트
- 자바
- mysql
- 스프링
- 배포
- spring cloud
- 스프링 부트
- Container
- CI/CD
- web server
- 도커
- spring boot
- CS
- Spring
- vm
- computer science
- 스프링 시큐리티
- 백엔드
- JPA
- 스프링 배치
- Spring Security
- spring batch
- 컨테이너
- 데이터베이스
- HTTP
- 웹 서버
- Today
- Total
목록자바 (12)
개발 일기

그전에 JVM에 대해 다시 떠올려보자. JVM 이란 Java Virtual Machine의 약자이며, 자바 가상 머신이라고 한다.자바 애플리케이션을 실행하기 위한 가상 환경자바 바이트코드(.class 파일)를 특정 운영체제나 하드웨어 환경에 상관없이 실행할 수 있게 해준다.JVM은 OS와 독립적이므로 한 번 작성된 자바 코드가 다양한 플랫폼에서 실행될 수 있는 "Write Once, Run Anywhere"의 핵심적인 역할을 한다.컴파일 단계: .java 파일을 자바 컴파일러(javac)를 통해 .class 파일로 컴파일한다.클래스 로드: 컴파일된 .class 파일은 JVM의 ClassLoader에 의해 로딩된다.메모리 할당: ClassLoader는 .class 파일을 Runtime Data Area(런..

스택(Stack)Stack은 LIFO(Last In First Out) 구조로 되어 있으며, 쉽게 해석하면 "후입 선출" 입니다. 즉, 마지막(최근)에 넣은 것을 먼저 뺀다는 말이다.그렇다면 어떠한 자료구조를 통해서 스택을 다룰 수 있을까? 스택은 순차적으로 데이터를 추가하고 삭제하기 때문에 ArrayList와 같은 배열기반의 컬렉션 클래스가 적합하다.java.util에서 Stack.class를 제공하고 있다. 아래는 Stack class의 관련 메소드들이다.메서드설명boolean empty()Stack이 비어있는지 알려준다.Object peek()Stack의 맨 위에 저장된 객체를 반환.pop()과는 달리 Stack에서 객체를 꺼내지는 않는다.( 비었다면 EmptyStackException발생 )Obj..

자료구조(Data Structure)란?컴퓨터 프로그램에서 데이터를 효율적으로 저장하고 관리하기 위해 설계된 구조로 Array, List, Map 등이 대표적이다.배열(Array)배열은 인덱스와 값을 일대일 대응해 관리하는 자료구조데이터를 저장할 수 있는 모든 공간은 인덱스와 일대일 대응하므로 어떤 위치에 있는 데이터든 한 번에 접근할 수 있다.일반적으로 배열은 선언할때 크기가 고정특정 인덱스에 있는 데이터를 읽거나 변경하는 데 O(1)의 시간 복잡도데이터를 순차적으로만 접근할 수 있어 위치를 모르는 경우 효율이 떨어짐.배열에 들어가는 데이터는 모두 동일한 자료형 이어야 함.배열 중간에 값을 추가하려면 기존 데이터를 모두 이동시켜야 함.// 1차원 배열int[] arr = {0, 0, 0, 0, 0, 0..

정리하게된 계기스프링 부트를 쓰게되면서 접근 제어자를 고민할때가 정말 많다. 그러나 사실 정확히 알지 못하고 그냥 때려맞추거나 Best Practice를 무작정 매번 따라 가려고한다. 근데 정확히 왜 이게 주로 이렇게 접근 제어자를 설정하는지 이해하면서 개발을 진행하고 싶고 그러기 위해서는 접근 제어자에 대해서 잘 알고 있어야한다는 판단이 섰다. 그래서 정리해보게 됐다.접근 제어자(Access Modifier)란?자바에서 접근 제어자는 클래스와 클래스의 멤버인 필드, 메소드, 생성자를 생성할 때 외부에서 접근할 수 있는 범위를 제한해주는 장치이다.크게 클래스의 접근 제어자와 클래스 멤버의 접근 제어자 이렇게 두가지로 나누어서 고려해볼 수 있다. 클래스의 접근 제어자클래스를 정의할 때 지정 가능한 접근 ..

프록시 프록시를 이해하고 아래의 즉시로딩 지연로딩에 대해서 이해할 수 있다. 우선 왜 프록시가 쓰이는가? Member를 조회할 때 Team도 함께 조회해야 하는가? // 1. 회원과 팀 함께 출력 public void printUserAndTeam(String memberId) { Member member = em.find(Member.class, memberId); Team team = member.getTeam(); System.out.println("회원 이름: " + member.getUsername()); System.out.println("소속팀: " + team.getName()); } // 2. 회원만 출력 public void printUserAndTeam(String memberId) ..

이전 게시글에서는 스프링 삼각형과 POJO에 대해서 알아봤고 POJO는 IoC/DI, AOP, PSA를 통해서 달성할 수 있다는 것을 파악한 후 POJO에 대해서 정리했었다. 이제 POJO가 뭔지 알았으니 이제 어떠한 특징들을 통해서 이 POJO를 달성할 수 있느지 그중 첫번째로 IoC/DI에 대해 공부해보고자 한다. Spring Framework는 객체의 생성부터 소멸까지, 또한 그 사이의 여러 생명주기 단계들을 Spring이 관리하며 필요할 때마다 Spring 컨테이너에서 객체를 꺼내어 사용할 수 있는 구조라고 했었는데 이때, 이 객체를 스프링 빈(Spring Bean)이라고 한다. (추후에 이 스프링 IoC컨테이너와 스프링 빈(객체)에 대해서 더 자세하게 다뤄 보겠다.) 5분 개발이라는 분의 영상을..

이전 게시글에서 스프링 생태계에 대해서 알아봤는데 Spring Framework의 3대 특징인 Spring 삼각형에 대해서 공부해보고자 한다. Spring 삼각형 위 사진이 바로 유명한 Spring 삼각형이다. Spring의 핵심 특징인 3대 특징이다. POJO는 IoC/DI, AOP, PSA를 통해서 달성할 수 있다는 것을 의미한다. 이제 하나씩 알아보자 POJO(Plain Old Java Object) 기반의 구성 우선 POJO부터 알아보자. POJO는 이전 게시글 스프링의 등장 배경에서 마틴 파울러는 EJB에 오래된 방식의 "오래된 방식의 간단한 자바 오브젝트로 돌아가자"라는 말이 기원이라고 했었다. 조금 더 자세한 일화를 봤는데 마틴 파울러가 2000년에 콘퍼런스 발표를 준비하다가 만들어낸 용어인..

이전 게시글에서 어떻게 Spring이 등장하게 되었는지 알게 됐는데 Spring, Spring Framework, Spring Boot 등 이런 용어들이 각각 어떻게 다른 건지 Spring의 생태계에 대해 먼저 이해할 필요가 있다고 생각했고 그래서 도대체 그놈의 스프링이 어떻게 되어있는지 생태계에 대해 먼저 이해해보고자 한다. Spring 생태계 우선 결론부터 말하자면 Spring안에 Spring Boot, Spring Framework, Spring Data, Spring Security 등이 포함된 것였다. 스프링 공식 문서에 들어가보면 관련 프로젝트들이 쭉 나열된 것을 볼 수 있다. 즉, Spring은 여러 기술(프로젝트)들의 모음이라고 보면 된다. 여기서 핵심이자 중심은 스프링 프레임워크이고 나머..