전체 글 82

[Thread] Thread - Part2

1. 싱글스레드와 멀티스레드 앞서 Thread - part1 에선 멀티스레드의 장점에 대해서 공부해보았는데 , 멀티스레드가 싱글스레드보다 무조건 성능이 좋을까? 결론부터 말하자면 아니다. 상황마다 다르다. 예를들어서 싱글스레드로 2개의 프로그램을 돌리면 순차적으로 프로그램이 실행되면서 하나의 프로그램이 종료되면서 다음 프로그램이 실행되는 모습을 보일것이다. 멀티스레드로 2개의 프로그램을 돌릴땐 이야기가 살짝 다르다 OS 스케줄러에 의해서 두 프로그램은 번갈아 가면서 실행되고 이때 작업 전환을 할 때 걸리는 시간이 발생하는데 이를 context switching(작업 전환)이라고 부른다. 따라서 만약 싱글코어(한번에 실행할 수 있는 프로그램이 1개인 상황)에서 단순한 작업을 진행한다면 싱글스레드가 더 효율..

Java 2021.09.17

HTTP 웹 기본 지식 정리 - HTTP 메서드

※ 본 포스팅은 Inflearn - 김영한 강사님의 'HTTP 웹 기본 지식 정리' 을 참고,공부하여 만들었습니다. HTTP 메시지 HTTP 메시지로 모든 것을 전송한다. HTML , TEXT IMAGE , 음성 , 영상 , 파일 JSON , XML 거의 모든 형태의 데이터 전송 가능 서버간의 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 메시지 형식 A) 시작라인 a. 요청메시지 구성 request - line = method(공백)request-target(공백)HTTP-version(엔터) 리퀘스트 라인은 위의 형식을 맞춰줘야함 , 공백 엔터 등등 method : http 메서드 (GET : 요청 , 조회) / GET , POST , PUT , DELETE 등등 request-tartget..

Web 2021.09.09

HTTP 웹 기본 지식 정리 - 본격! HTTP 기본

※ 본 포스팅은 Inflearn - 김영한 강사님의 'HTTP 웹 기본 지식 정리' 을 참고,공부하여 만들었습니다. 모든 것이 HTTP ! HTTP ( Hyper Text Transfer Protocol ) HTML , TEXT , JSON ,XML 이미지 음성 등등 거의 모든 형태의 데이터가 전송 가능하다. 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 고로 지금은 HTTP 시대라고 하는것! 우리가 알아야 하는 HTTP의 특징 • 클라이언트 서버 구조부터 파악하자 • 무상태 프로토콜(stateless), 비연결성 • HTTP 메시지 • 단순함, 확장 가능 1. 클라이언트 서버 구조부터 파악하자 요청 , 응답 의 구조 클라이언트는 서버에 요청을 보내고 응답을 대기한다. 서버가 요청에 대한 결과를..

Web 2021.09.08

HTTP 웹 기본 지식 정리 - URI 와 웹 브라우저 요청 흐름

※ 본 포스팅은 Inflearn - 김영한 강사님의 'HTTP 웹 기본 지식 정리' 을 참고,공부하여 만들었습니다. URI (Uniform Resource Identifier) 통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. 그런데 URI URL URN ? 이것들의 차이점이 뭐지? URI의 하위개념으로 URL, URN 이 있다. URI 는 Resource Identifier 로써 URL 과 URN 을 포함하고 있다. URL : Resource Locator - 리소스가 있는 위치를 지정 URN : Resource Name - 리소스에 이름..

Web 2021.09.07

HTTP 웹 기본 지식 정리 - 인터넷 네트워크

※ 본 포스팅은 Inflearn - 김영한 강사님의 'HTTP 웹 기본 지식 정리' 을 참고,공부하여 만들었습니다. IP (Internet Protocol) 인터넷 프로토콜(ip)의 역할 ( 엄밀히 말하자면 IP는 인터넷 통신규약이고 아래는 ip덕분에 가능한일들 ) 지정한 IP주소에 데이터를 전달한다. 패킷(Packet) 이라는 통신 단위로 데이터 전달 IP Packet 출발IP , 목적지IP , 전송데이터 등을 담아서 패킷형태로 전송 , 누가 보내느냐에 따라 클라이언트 패킷 , 서버 패킷 으로 나뉨 IP 의 한계 비연결성 - 패킷을 받을 대상이 없거나 , 서비스불능 상태 (서버가 닫혀있거나 , 상대방 컴퓨터가 꺼져있을때) 에도 패킷 전송 비신뢰성 - 중간에 패킷이 사라지거나 순서대로 오지않을수 있다. ..

Web 2021.08.31

[Inflearn] 컴포넌트 스캔과 자동 의존 관계 주입

※ 본 포스팅은 Inflearn - 김영한 강사님의 '스프링 핵심 원리 - 기본편' 을 참고,공부하여 만들었습니다. 이 주제를 선택한 이유 , 개발자의 고충 스프링 빈을 등록할 때 자바 코드의 @Bean , XML 의 등을 통하여 스프링빈을 등록한다. Singleton 에서 참고로 사용했던 'AppConfig' 라는 DI컨테이너 내부에 '개발자'가 설정정보를 입력하여 , 빈을 등록하고 의존관계를 주입하였다. 예제차원에서는 빈으로 등록할 개수는 많지 않았기에 AppConfig에 빈과 의존관계를 주입하는게 어렵지는 않았다. 하지만, 실제 서비스 수준에서 생각해볼때 모든 객체를 AppConfig에 설정정보를 입력하여 관리하는게 과연 효율적일까? 만약 AppConfig에 등록해야할 객체를 누락한다면 ? 무엇보다..

Spring/Spring Study 2021.08.20

[Inflearn] 싱글톤(Singleton) 컨테이너

※ 본 포스팅은 Inflearn - 김영한 강사님의 '스프링 핵심 원리 - 기본편' 을 참고,공부하여 만들었습니다. 싱글톤 이란? 싱글톤은 객체지향 디자인패턴중 하나이고 이 싱글톤 패턴은 인스턴스를 하나만 생성하도록 보증하는 패턴, 최초로 인스턴스를 생성하면 그 이후에 인스턴스를 계속해서 생성해도 똑같은 인스턴스를 반환시켜준다. Service service = new Service(); 클라이언트가 위의 객체를 사용하는 어떤 프로그램을 사용할 때 마다 , 인스턴스를 생성 만약 다수의 클라이언트가 동시에 서비스를 사용한다면? 만약 A,B,C 3명이 아닌 100,000명 1,000,000명이 이용한다면 그수에 맞는 인스턴스를 생성, 소멸해야한다. 이는 엄청난 메모리 낭비와 함께 트래픽 문제를 발생시킨다. 하..

Spring/Spring Study 2021.08.18

[Thread] Thread 정리 Part 1

1. 프로세스(process)와 스레드(thread) 1. 프로세스 (process) 실행 중인 프로그램으로써 자원과 스레드로 구성 2. 스레드 (Thread) 프로세스 내에서 실제 작업을 수행 , 프로세스는 최소한 하나의 스레드를 가진다. 결국 모든 프로세스는 최소한 하나 이상의 스레드를 가지고 있으며 , 실제로 프로세스의 자원을 가지고 작업을 수행하는 것은 스레드이다. 멀티태스킹과 멀티스레딩 여러 개의 프로세스의 실행 → 멀티태스킹 하나의 프로세스 안에서 여러 개의 스레드의 실행 → 멀티스레딩 하지만 하나의 CPU코어가 한 번에 수행할 수 있는 작업은 하나뿐이고 코어가 아주 짧은 시간 동안 여러 작업을 번갈아 가며 수행함으로써 여러 작업들이 동시에 수행되어 보이는 것뿐, 따라서 프로세스가 얼마나 많은..

Java/Java Study 2021.08.17

[자바의 정석] Exercise (7_10&11)

해당 연습문제는 자바의 정석3판 연습문제를 참조했습니다. getter & setter 생성문제다. 아주 간단한 문제지만 , 사용자 입장에서 생각해봤을때 어떤게 추가되어야 할지 생각해봐야한다. class MyTv2{ private boolean isPowerOn; private int channel; private int volume; final int MAX_VOLUME = 100; final int MIN_VOLUME = 0; final int MAX_CHANNEL = 100; final int MIN_CHANNEL = 1; public boolean isPowerOn() { return isPowerOn; } public void setPowerOn(boolean powerOn) { isPowerOn..

Java/Daily-Java 2021.07.08

[ 객체지향 ] static

Static , ( Feat. instance ) 인스턴스(instance)필드와 정적(static)필드에 대해서 자바를 공부한 사람이라면 한번은 들어보았을 것이다. 오늘 나는 인스턴스 필드와 정적필드에 관하여 가볍게 알아보려고 한다. 인스턴스(객체)는 힙(heap) 영역에 생성이 된다. 그리고 새로운 객체를 만들면 새로운 힙 영역에 그 객체가 할당, 그 힙영역에 인스턴스멤버들 또한 할당이 된다. class Product { private String productName; private int price; public Product(String productName, int price) { this.productName = productName; this.price = price; } public St..

Java/Java Study 2021.07.08