분류 전체보기 (198) 썸네일형 리스트형 스프링의 IoC와 DI IOC/DI는 스프링 프레임워크의 근간 오브젝트 생명주기와 의존관계에 대한 프로그램이 모델 유연하고 확장성이 뛰어난 크도를 만들 수 있게 해주는 프로그래밍 모델 유연하고 확장성이 뛰어나다라는 의미 = 변경이 있을 때 수정이 쉽자 = 수정할 부분만 수정하면 된다 = 관심사의 분리가 잘 이루어져있다 public class Car{ private MovingStrategy movingStrategy; private int distance; public Car(MovingStrategy movingStrategy){ this.movingStarategy = movingStrategy; this.distnace = 0; } void move(){ if(movingStragy.isMovable()){ di.. Java 코드가 실행되는 과정 과정 Java로 작성한 소스코드는 자바바이트코드로 변환되어 JVM에게 전달됩니다. JVM은 설치된 OS에 맞춰서 기계어로 변환시켜 줍니다. JRE는 자바 실행 환경의 약자입니다. JVM과 표준 라이브러리가 포함됩니다. JDK는 자바 개발 키트의 약자입니다. 컴파일러, 디버거, JAR, 프로파일러가 포함되어 있습니다. 이 모든 요소들을 활용하여 자바 프로그램을 개발하고 테스트하고 실행합니다. 그래서 자바로 개발할 때 JDK를 설치해야하는 이유입니다. 컴파일러 언어 vs 인터프리터 언어의 차이 컴파일 즉 번역은, 프로그래밍 언어로 코드를 짜고 나서, 그걸 실행하기 전에 , 컴퓨터가 읽을 수 있는 언어로 번역 작업을 하는 것을 말합니다. 실행할 때는 이 번역본을 컴퓨터에게 건내는 거죠 번역 과정이 번거.. 데이터베이스의 인덱스란? 인덱스란?만약 유저에 대한 정보를 찾고 싶을 때 sql문으로 찾으면 됩니다.select * from user where id = "abc" 하지만 이렇게 되면 하나하나 맞는지 비교하며 찾기 때문에, 데이터가 많으면 정보를 불러오는데 오랜 시간이 걸립니다. 행을 반씩 나눠가며 찾으면 빠르게 찾을 수 있습니다. 비교하고 싶은 열의 값을 정렬해둔 컬럼을 인덱스라고 합니다. 인덱스를 쓰면 좋을 때대규모 테이블에서 특정 조건을 자주 검색하는 경우 인덱스를 사용하면 좋습니다. 예를 들어 고객 테이블에서 고객 ID를 기반으로 자주 조회할 경우 인덱스를 사용하면 효율적입니다. SELECT * FROM customers WHERE customer_id = 12345; 여러 테이블을 조인하거나 특정 조건을 데이터를 자주 .. 프로세스와 스레드의 차이점 프로세스와 스레드프로그램이 돌아가고 있는 상태를 프로세스라고 합니다.예를 들어 바탕화면에 크롬을 선택하면 화면이 나옵니다. 화면이 나오는 상태를 프로세스라고 합니다. 크롬은 일을 할 때 게임을 다운받는 동시에 다른 페이지를 돌아다닐 수 있어야 합니다. 한 프로세스 안에도 여러 갈래의 작업들이 동시에 진행될 필요가 있습니다. 이 갈래를 스레드라고 합니다. Context Switching 프로세스 1을 수행하다가 프로세스 2로 이동한다. 이를 Context Swithching이라고 합니다. 이동할 때 프로세스 컨트롤 블록에 프로세스 상태를 저장합니다. 문맥을 이어가기 위한 생태를 저장합니다. 연산할 때 상태가 변하는데 그 상태의 변화는 레지스터에 저장됩니다. 공유자원과 동기화여러 프로세스, 여러 스레드가 동.. 객체 지향이란 무엇인가요? 정의객체지향 프로그래밍은 프로그램을 객체들의 상호작용으로 구성하는 방식입니다. 각 객체는 상태를 가지고 있고, 그 상태를 변경하거나 활용할 수 있는 행동(메소드)을 합니다. 객체지향 프로그래밍은 이러한 객체들을 중심으로 프로그램을 구조화하여, 복잡한 시스템을 더 쉽게 관리하고 유지 보수할 수 있게 해줍니다. 객체지향 프로그래밍의 4가지 특징캡슐화객체의 상태와 행동을 묶어, 외부에서 객체의 내부 상태를 직접적으로 접근하지 못하도록 합니다.각 클래스는 자신의 메서드와 데이터에만 집중하고, 외부에는 필요한 메서드만 공개합니다. 외부 객체들은 이 공개된 메서드를 통해서만 클래스와 상호작용할 수 있습니다. 이를 통해 코드의 복잡성을 줄이고, 수정 및 유지보수 시 유연성을 확보할 수 있습니다. 상속하나의 클래스가 .. OSI 7계층이란 무엇인가요? 정의네트워크 간에 서로 통신하기 위해서 해당 조건들의 약속이 필요합니다.1. 애플리케이션 목적에 맞는 통신 방법 2. 신뢰할 수 있는 데이터 전송 방법 3. 네트워크 간의 최적의 통신 경로 결정4. 목적지로 데이터 전송5. 노드 사이의 데이터 전송 네트워크 통신을 하기 위해서 통신에 참여하는 주체들이 따라야 하는 형식, 절차, 규약을 네트워크 프로토콜이라 부릅니다.이 모든 기능을 단 하나의 프로토콜로 구현할 수 없어서, 기능을 모듈화 시켰습니다. OSI model은 네트워크 통신이 일어나는 과정을 7단계로 나눈 네트워크 표준 모델입니다. 각 계층의 역할각 레이어에 맞게 프로토콜이 세분화돼서 구현되었습니다.각 레이어의 프로토콜은 하위 레이어의 프로토콜이 제공하는 기능을 사용하여 동작합니다. 응용 계층(Ap.. [study] WebRTC를 이용한 실시간 데이터 교환 WebRTCWebRTC는 시그널링을 통해 NAT 우회과정을 거쳐 데이터를 교환할 수 있습니다.WebRTC는 서버와 같은 중간자를 거치지 않고 브라우저간을 P2P로 연결하는 기술입니다. 중간 서버를 거치지 않기 때문에 빠른 속도가 보장되며, HTTPS가 강제 되기 때문에 중간자 공격에 대한 보안이 보장됩니다. P2P 절차각 피어간의 P2P 연결을 위해 먼저 각 피어간의 P2P 통신에 동의해야 합니다. 그리고 서로의 주소를 공유하고 각 피어간의 보안 사항 및 방화벽을 우회합니다. 이 과정을 거쳐 데이터 교환을 실시간으로 하게 됩니다. WebRTC는 통신 초기 설정에서 중재자가 서로의 주소를 공유하여 보안 사항들을 우회하는 과정이 필요합니다. 방화벽과 NAT 트래버셜일반적인 컴퓨터에는 공인 IP가 할당되어 .. [study] spring과 웹소켓 웹소켓 언제쓰지?사용자들끼리 실시간으로 정보를 공유해야 할 때 사용됩니다. 전이중 통신을 이용해서 실시간성을 보장합니다.게임, 채팅, 실시간 주식 거래 사이트 등등에서 사용됩니다. 웹소켓 vs HTTPHTTP에서도 실시간성을 보장할 수 있을까? HTTP에서도 실시간성을 보장하는 기법이 존재합니다. Polling, Long Polling, Streaming이 있습니다. 그럼에도 웹소켓이 사용한 환경이라면, HTTP를 이용한 기술보다도 웹소켓을 사용합니다.HTTP와 웹소켓의 가장 큰 차이점은 수립된 연결을 어떻게 하느냐 입니다. HTTP는 비 연결성 프로토콜입니다. 클라이언트가 요청을 보낼때마다 응답을 받고 연결을 끊어버립니다. 웹소켓의 경우에는 한번 연결을 맺은 뒤 유지됩니다. 한 쪽이 연결을 끊으라는 요.. 이전 1 2 3 4 ··· 25 다음