본문 바로가기

장생농

(139)
Spring Boot - 스프링 부트 동작 원리 데어프로그래밍 님의 스프링 부트 강의를 듣고 정리하는 글입니다.(www.youtube.com/channel/UCVrhnbfe78ODeQglXtT1Elw) 스프링에 배우면서 본문을 채워갈 예정. 1. 내장 톰캣을 가진다 톰캣은 WAS다. 톰캣을 http 통신을 한다. http는 Stateless 방식이다.(연결 유지X) http 통신은 요청과 응답으로 이뤄진다. 아파치는 일반 자원만 응답할 수 있지만, 톰캣은 jsp파일을 컴파일하여 응답할 수 있다. 2. 서블릿 컨테이너 서블릿을 모른다면 먼저 읽고 오기 - jang-sn.tistory.com/49 스프링은 URI로만 접근할 수 있다. -> 요청시에는 무조건 WAS(자바)를 거쳐야 한다. 서블릿은 간단히 말해, 클라이언트 요청을 처리하는 프로그램이다. 서블..
자바/JAVA LIFO, FIFO 컬렉션 후입선출 LIFO Last In First Out: 나중에 넣은 객체가 먼저 나오는 자료구조. 선입선출 FIFO First In First Out: 먼저 넣은 객체가 먼저 나오는 자료구조. 컬렉션 프레임워크에는 LIFO를 지원하는 Stack 클래스, FIFO를 지원하는 Queue 인터페이스를 제공한다. Stack의 주요 메소드 리턴 타입 메소드 설명 E push(E item) 주어진 객체를 스택에 넣는다. E peek() 스택의 맨 위 객체를 가져온다. 객체를 제거하지는 않는다. E pop() 스택의 맨 위 객체를 가져오고, 객체를 스택에서 제거한다. 스택 생성 Stack stack = new Stack(); Stack stack = new Stack(); Queue의 주요 메소드 리턴 타입 메소드 설명..
자바/JAVA 스레드(2) 스레드는 다양한 상태를 가지게 된다. 스레드 상태 제어: 실행 중인 스레드의 상태를 변경하는 것. 스레드 객체를 생성하고 start() 메서드를 호출하면 바로 스레드가 실행되는 것이 아니라 실행 대기 상태가 된다. 실행 대기 상태(Runnable): 바로 실행할 준비가 된 상태. 실행을 기다리는 상태. 실행 상태(Running): 실행 대기 상태인 스레드 중에서 OS가 하나를 선택하고 CPU가 스레드의 run() 메서드를 실행시킨다. 이때가 실행 상태이다. 실행 상태 스레드는 run() 메소드를 모두 실행하기 전에 실행 대기 상태로 돌아갈 수 있고, 실행 대기 상태에 있는 다른 스레드가 선택되어 실행 상태가 되기도 한다. 따라서 스레드는 실행 대기 상태와 실행 상태를 번갈아가면서 자신의 run() 메서드..
자바/JAVA 스레드(1) 프로세스(process): OS에서 실행 중인 하나의 애플리케이션이다. OS로부터 메모리를 할당받아 코드를 실행한다. 하나의 애플리케이션은 멀티 프로세스를 만들기도 한다. -> 멀티 프로세서의 예) 미디어 플레이어는 동영상 재생과 음악 재생을 동시에 한다. OS는 멀티 태스킹할 수 있도록, 메모리를 프로세스마다 할당하고 병렬로 실행시킨다. 멀티 태스킹은 OS가 두 가지 이상의 작업을 처리하는 것인데, 이것은 멀티 프로세스와 다르다. 미디어 플레이어는 하나지만 멀티 프로레스이다. 스레드(thread): 프로세스 내에서 실행되는 하나의 코드 실행(작업) 흐름 단위이다. 하나의 프로세스는 하나 이상의 스레드를 갖는다. 멀티 스레드: 하나의 프로세스 내에 동시 실행을 하는 스레드들이 2개 이상인 경우. 멀티 프..
자바/JAVA 스트림과 입출력 입출력 클래스는 다양하고, 사용법도 다양하기 때문에 개념만 잡고 사용할 때마다 문법을 찾아서 사용하자. 입출력을 알기 위해 스트림을 알아야 한다. * 스트림은 다양한 장치에 독립적으로 일관성 있게 데이터 입출력을 제공하는 방식이다. * 입출력이 구현 되는 곳에서는 모두 I/O 스트림을 사용한다.// 키보드, 파일, 메모리, 네트워크 * 단방향이다. 스트림은 입력과 출력, 바이트와 문자, 기반과 보조로 나눌 수 있다. 입력 스트림: 대상으로부터 자료를 읽어 들이는 스트림 출력 스트림: 대상으로부터 자료를 출력하는 스트림 바이트 단위 스트림: 바이트 단위로 처리하고 동영상, 음악 파일 등을 읽고 쓸 때 사용하는 스트림(XXXInputStream, XXXOutputStream) 문자 단위 스트림: 문자 처리를..
Spring Boot - JPA란? 데어프로그래밍 님의 스프링 부트 강의를 듣고 정리하는 글입니다. JPA란? Java Persistence API이다. -> Persistence(영속성)은 데이터를 생성한 프로그램이 종료되도 사라지지 않는 데이터의 속성이다. JPA는 자바의 데이터를 영구히 기록할 수 있는 API다. API라는 것은 인터페이스라는 것이고, 그렇다면 그것을 구현하는 무언가가 있어야 한다. ORM 기술이다. -> Object Relational Mapping. Object를 DB와 매핑하는 방법이다. JPA의 인터페이스를 이용해 자바의 클래스와 맞는 DB의 테이블을 자동 생성해준다. 반복적인 CRUD 작업을 생략하게 해준다. -> 자바 프로그램과 DB와의 연결, 쿼리 전송, 데이터 타입 변환 등등의 기능을 함수로 제공한다. ..
Spring Boot - 스프링 부트란? 개념 정리 데어프로그래밍 님의 스프링 부트 강의를 듣고 정리하는 글입니다. 스프링이란? 프레임워크다 -> 틀 안에서 동작한다. 오픈소스다 -> 소스코드가 공개되어 있다. 따라서 내부를 볼 수 있고 수정도 가능하다. IOC 컨테이너를 가진다 -> Inversion of Controll(제어의 역전). 오브젝트에 대한 주도권이 컨테이너(스프링)에게 있다. 스프링이 Object들을 스캔해서 인스턴스를 생성해 컨테이너에 담아 인스턴스의 생명주기를 관리한다. 개발자가 만든 클래스, 메소드를 스프링이 실행한다. -> 제어의 역전 DI를 지원한다 -> Dependency Injection(의존성 주입). 클래스 사이의 의존 관계를 빈(Bean) 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것. 스프링이 관리하는 객체를 ..
자바/JAVA Collection Framework 생활코딩 강의를 듣고 적는 글입니다. 컬렉션 프레임워크는 여러 데이터를 효과적으로 처리하는 클래스(자료구조와 알고리즘)의 집합이다. java.util 패키지에서 제공한다. Collection은 객체의 저장을 뜻하고, Framework는 사용 방법을 정해놓은 라이브러리를 뜻한다. 컬렉션 프레임워크의 구조를 보면 Collection은 인터페이스고 단일 객체를 다룬다. Set과 List는 Collection을 상속받는 하위 인터페이스이다. 그리고 HashSet, ArrayList는 각각 인터페이스의 구현 클래스이다. 정확히는 AbstractSet, AbstractList가 구현하고 그걸 HashSet과 ArrayList가 상속받는다. List 컬렉션 배열과 비슷하게 객체를 인덱스로 관리한다. 배열과 차이점은 ..