모든 개발자를 위한 HTTP 웹 기본 지식을 보고 정리한 내용입니다. IP(인터넷 프로토콜) - port란 개념이 없다. - 데이터를 보내는 주소 TCP(전송 제어 프로토콜) - 연결지향(3way handshake 가상연결) SYN(접속요청),SYN+ACK,ACK(요청수락),데이터전송 - 데이터 전달 보증 1.데이터전송 2.데이터 잘 받았음 - 순서 보장 - 신뢰 할 수 있는 프로토콜 * 쉽게 예시를 들자면, IP는 아파트, PORT는 몇동 몇호 - 현재는 대부분 TCP 사용 - PORT추가(같은 IP 내에서 프로세스 구분) UDP(사용자 데이터그램 프로토콜) - IP와 거의 같고, PORT와 체크섬만 추가 - 단순하고 빠르다. QUIC(Quick UDP Internet Connections) - 현재 ..
** 김영한님의 인강을 듣고 정리했습니다. 👉스프링자바 언어 기반의 프레임워크자바 언어의 가장 큰 특징(객체지향언어)스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크👉객체지향추상화캡슐화다형성상속👉좋은 객체 지향 설계의 5가지 원칙(SOLID): 객체 지향 프로그래밍(OOP)에서 유지보수성과 확장성을 높이기 위한 5가지 설계 원칙SRP : 단일 책임 원칙(클래스는 하나의 책임만 가져야 한다)OCP : 개방-폐쇄 원칙(기존 코드 수정 없이 새로운 기능을 추가할 수 있어야 한다.)LSP : 리스코프 치환 원칙(자식 클래스는 부모 클래스를 대체할 수 있어야 한다.)ISP : 인터페이스 분리 원칙(클라이언트가 사용하지 ..
** 김영한님의 스프링입문 강의를 보고 정리했습니다. 빌드란 소스코드를 실행 가능한 프로그램(바이너리)로 변환하는 과정이다.빌드 자동화 도구가 gradle, maven 등이 있다.대부분 API는 객체를 JSON으로 변환하여 반환한다.현재 내가 맡고 있는 서비스에서는 스프링을 사용, maven을 사용해서 빌드는 pom.xml에 넣어져있다.@Component` 를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록된다.@controller @service @repository
🔎 영속성 컨텍스트? 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이다. 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 인티티를 보관하고 관리한다. em.persist(member); 영속성 컨텍스트의 특징 엔티티 매니저를 생성할 때 하나 만들어진다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근하고 관리할 수 있다. 🔎 엔티티의 생명주기 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 상태 영속 : 영속성 컨텍스트에 저장된 상태 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제 : 삭제된 상태 비영속 엔티티 객체를 생성했지만 아직 영속성 컨텍스트에 저장하지 않은 상태를..
📌MyBatis JDBC를 좀 더 편하게 사용할 수 있도록 객체를 SQL이나 저장 프록시저와 매핑해주는 Persistence Framework, 한 마디로 SQL Mapper 장점 다른 프레임워크들에 비해 간단하다. 소스 코드와 SQL의 분리 SQL을 직접 다룰 수 있다. 📌JPA 자바 진영의 ORM 기술 표준 명세(실제 구현체 : Hibernate, EclipseLink 등) JPA를 사용해야 하는 이유 1. 생산성 : JPA를 사용하면 지루하고 반복적인 CRUD용 SQL을 개발자가 직접 작성하지 않아도 된다. Spring Data JPA를 사용하면 interface 선언만으로도 쿼리 구현이 가능해서 관리도구 등에서 가볍게 사용할 수 있는 CRUD 쿼리를 손쉽게 대처할 수 있다. 2. 유지보수 : 컬럼..
📌로드 밸런서 서버의 부하를 분산시켜주는 시스템이다. 👉 L4 로드 밸런서 정의 L4 로드 밸런서는 전송 계층에서 작동하는 로드 밸런서로, 주로 TCP 및 UDP 프로토콜을 기반으로 클라이언트와 서버 간의 트래픽을 분산시킨다. L4 로드 밸런서는 클라이언트의 IP 주소와 포트, 서버의 IP 주소와 포트를 기반으로 로드 밸런싱을 수행한다. 👉 L7 로드 밸런서 정의 L7 로드 밸런서는 애플리케이션 계층에서 작동하는 로드 밸런서로, 주로 HTTP 및 HTTPS 프로토콜을 기반으로 클라이언트와 서버 간의 트래픽을 분산시킨다. L7 로드 밸런서는 요청 내용(URL, 헤더, 쿠키 등)을 기반으로 로드 밸런싱을 수행한다. 👉 장단점 및 사용 사례 L4 로드 밸런서의 장점은 처리 속도가 빠르다는 것이다. 패킷의 헤더..
📌 문제 - 학생정보들을 저장하고 학생이름으로 검색했을 때 학번을 출력하는 프로그램 작성. - Student 클래스 생성 - String name, no를 가짐(이름과 학번) - 학생들을 ArrayList에 저장한 이후, - 계속 검색을 하겠느냐 y -> 반복 - 종료하고싶으면 n -> 프로그램 종료 - 학생 이름이 있는 경우 그 학생의 학번을 출력 - 학생 이름이 없으면, 없는 학생이름이라고 출력 >>> while, flag, ArrayList, foreach 👉 답 package com.study; import java.util.ArrayList; import java.util.Scanner; public class HelloWorld { public static void main(String[] a..