[TCP/IP가 보이는 그림책] 1. TCP/IP 개요
·
네트워크/TCP•IP
#️⃣ 개요 OSI 7계층과 달리 TCP/IP는 5계층(혹은 4계층)으로 구성된다. 참조된 그림에서는 4계층으로 기술되었으나, 본문에서는 5계층을 기본으로 하여 기술한다. TCP/IP는 순서대로 애플리케이션 계층, 트랜스포트 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층으로 되어있다. 4계층은 데이터 링크 계층과 물리 계층을 합쳐 Network Access 계층으로 표현한다. 💬 용어 설명 - TCP/IP : 인터넷에서 사용되는 통신 프로토콜의 총칭으로 주로 사용- 신호 : 다른 컴퓨터와 통신하기 위해 형태를 바꾼 데이터. 아날로그/ 디지털 신호가 있으며 주로 물리 계층에서 변화함.- 계층(layer) : 5계층을 차례대로 통과하며 데이터 송수신이 일어남.- 패킷(packet) : 데이터 전송..
[TCP/IP가 보이는 그림책] 0. TCP/IP를 시작하기 전에
·
네트워크/TCP•IP
#️⃣ 컴퓨터 네트워크적외선, 전파 등 어떤 수단을 사용하여 연결해 다양한 데이터를 주고받을 수 있는 상태로 되어있는 것으로, 규모에 따라 다음과 같이 나눌 수 있다.LAN(Local Area Network) : 비교적 좁은 공간에 있는 기기끼리 연결한 네트워크주로 가는 구리선을 짜넣은 LAN 케이블을 사용함.무선 LAN: 케이블을 사용하지 않고 전파•적외선을 사용해 연결한 네트워크 WAN(Wide Area Network) : 지리적으로 떨어진 장소에 있는 기기끼리 연결한 비교적 대규모의 네트워크광섬유 케이블, 공중망(전화 회선) 등을 사용 인터넷 : 여러개의 LAN이나 WAN을 연결한 전 세계 규모의 네트워크컴퓨터, 휴대 전화, 소형 휴대 단말기와도 데이터를 주고받을 수 있음. 인트라넷 : 인터넷 기술..
250225 TIL : RESTController
·
🏕 멋사 Java 백엔드 13기/TIL
📌 @Controller 및 @RestController의 차이@Controller : SpringMVC의 기본 컨트롤러 어노테이션으로웹 어플리케이션에서 HTTP 요청을 처리하는 역할특징 및 사용법View 템플릿을 반환(MVC 패턴의 V)ModelAndView, String, Model, Map 등을 반환할 수 있음이를 통해 데이터를 뷰로 전달하고 뷰를 렌더링할 수 있음반환된 뷰 이름은 ViewResolver에 의해 해석되어 최종적으로 사용자에게 보여질 페이지를 생성함@RestController : @Controller와 @ResponseBody를 결합한 것으로, RESTful 웹서비스를 쉽게 만들 수 있도록 함클래스가 HTTP 요청을 처리하고 데이터를 JSON or XML 형태로 클라이언트에게 직접 ..
250218 TIL | 상속 매핑 전략과 임베디드 타입
·
🏕 멋사 Java 백엔드 13기/TIL
📌 상속 매핑 전략1️⃣ 단일 테이블 전략상속 계층의 모든 클래스를 하나의 테이블에 매핑다형적 쿼리의 성능이 빠름특정 하위 클래스 속성이 비어있는 등 데이터의 중복 및 낭비가 발생할 수 있음활용@Inheritance(strategy = Inheritancetype.SINGLE_TABLE 전략을 사용 시, 상속받는 모든 엔티티는 하나의 테이블에 저장된다.📍DB 설정@Entity@Inheritance(strategy = InheritanceType.SINGLE_TABLE)@DiscriminatorColumn(name="type",discriminatorType = DiscriminatorType.STRING)@Getter@Setterpublic class Vehicle { @Id @Generated..
250205 TIL | 람다식
·
🏕 멋사 Java 백엔드 13기/TIL
람다식개념 : 메서드(익명 함수)를 하나의 식으로 표현함(매개변수_목록) -> { 로직 }자바 8에서 도입매개변수 : 여러 개의 매개변수 사용, 매개변수의 타입은 컴파일러가 자동으로 추론할 수 있어 생략로직 : 람다식이 실제로 수행할 코드작성 규칙메서드의 이름, 반환타입 제거하고 →를 블록{} 앞에 추가한다.반환값이 있는 경우, 식이나 값만 적고 return은 생략한다.매개변수 타입이 추론 가능 시 매개 변수 타입 생략 가능매개변수가 1개인 경우 () 생략 가능로직 문장이 1개인 경우 {} 생략 가능단, 한 문장이 retrun인 경우 {} 생략 불가람다식 적용 전int max(int a, int b) { return a > b ? a : b;}람다식 적용 후(a, b) -> a > b ? a: b사용..
250121 TIL | AOP
·
🏕 멋사 Java 백엔드 13기/TIL
💬 AOP(Aspect oriented Programming, 관점지향 프로그래밍) 프로그램에서 핵심 로직과 부수 로직(DB 연결, 로깅, 파일 입출력 등)을 분리해 모듈화하는 방식그림 1을 통해 설명하자면, 각각의 클래스에서 공통된 기능(X,Y,Z)를 가질 때 핵심 로직(A,B,C)과 부수 로직(X,Y,Z)으로 분리하는 것을 말한다. ✅ 목적 및 장점 중복 코드 제거효율적 유지보수 높은 생산성 재활용성 극대화변화 수용 용이 ✅ 용어 정리JointPoint애플리케이션을 실행할 때 특정 작업이 실행되는 시점Advice가 적용될 위치( method 진입 지점, 생성자 호출 시점) 등Advice JointPoint에서 실행되어야 하는 코드부수 로직(X,Y,Z)에 해당 Target 실질적 비지니스 로직(A,B..
240117 TIL : DI
·
🏕 멋사 Java 백엔드 13기/TIL
💬 IoC(Inversion of Control, 제어의 역전)💡 프로그램의 제어 흐름을 개발자가 아닌 프레임워크가 관리하는 디자인 원칙  기존 방식 객체 생성 → 의존성 객체 생성 → 의존성 객체 메소드 호출스프링객체 생성 → 의존성 객체 (스프링이 만들어 놓은 객체) 주입  → 의존성 객체 메소드 호출❔ IoC의 장점유연성 증가클래스 간 결합도 낮아짐 유지 보수 용이코드 변경 시 적은 부분만 변경할 수 있음💬 Bean💡 Spring IoC 컨테이너가 관리하는 객체. (생성•초기화•보관•제공) ❔ Bean의 주요 특징 관리의 자동화 싱글턴 패턴 어플리케이션 내에서 해당 Bean에 대한 요청이 있을 때마다 동일한 객체 인스턴스가 반환됨필요에 따라 프로토타입 등의 다른 스코프 설정 가능의존성 주입(..
[멋쟁이사자처럼 부트캠프 TIL 회고] 241231 백엔드 Java 부트캠프 21일차
·
🏕 멋사 Java 백엔드 13기/TIL
💡 퍼사드 패턴(Facade Pattern)구조적 패턴(Structural Pattern) 중 하나로, 복잡한 서브 시스템의 여러 기능을 쉽게 사용할 수 있도록 통합된 인터페이스를 제공하는 방식이다. Facade 객체는 다양한 서브 시스템의 기능을 클라이언트에게 하나의 인터페이스로 제공한다. 퍼사드 패턴을 사용하면 서브 시스템을 단순화해 직관적으로 관리할 수 있고, 클라이언트가 내부 구현에 의존하지 않는 유연한 구조를 갖출 수 있다. 적용 가능성복잡한 서브 시스템 감추고 싶은 경우서브 시스템과 클라이언트 간의 결합도를 낮추고 싶은 경우서브 시스템의 로직이 자주 변경되는 경우📍 구조 및 구현Facade 클래스 : 클라이언트가 자주 쓰는 기능을 묶은 메서드를 제공함Subsystem 클래스 : 실제 로직..
2주차 : 정적 배열(Static Arrays)
·
🏕 멋사 Java 백엔드 13기/자료구조
📕 배열(Array)데이터 타입이 동일한 여러 값을 하나의 변수 이름으로 관리하는 자료 구조연속된 메모리 공간에 데이터를 저장각 요소(element)에 인덱스(주소)를 사용해 접근한다.크게 정적 배열(Static Array)과 동적 배열(Dynamic Array)으로 나뉜다.추후 동적 배열 파트에서 둘의 차이를 비교할 예정. 📕정적 배열(Static Array)컴파일 시점에 크기, 데이터 타입이 결정되는 배열이후 배열의 크기가 변경될 수 없음.📗 특징배열 크기 고정 : 선언 시 정한 크기로 고정됨데이터 타입 고정 : 하나의 배열에 하나의 자료형만 선언됨 연속된 메모리 공간에 저장됨인덱스를 통해 요소에 접근 컴파일 시 stack 영역에 할당됨  📘 메모리 영역 이번 주에 다룰 정적 배열과 동적 배열..
[멋쟁이사자처럼 부트캠프 TIL 회고] 백엔드 Java 부트캠프 12일차 | DB
·
🏕 멋사 Java 백엔드 13기/TIL
1. MySQL 기초 명령어MySQL 버전 및 기본 정보 확인SQL : 쿼리문장을 구별하는 것은 semicolon(;)키워드는 대소문자 구별이 없음select version(); -- MySQL 버전 확인 select curdate(); -- 현재 날짜 확인 select current_user(); -- 현재 사용자 확인 select now(); -- 현재 시간 및 날짜 확인데이터 베이스 생성 및 삭제 -- DB 생성create database hr; create database scott; -- DB 삭제drop database hr; drop database scott;  2. 사용자 및 권환 관리 사용자 생성--모든 IP 주소. 외부..