HTTP란
·
Develop/Network
HTTP(하이퍼텍스트 전송 프로토콜, HyperText Transfer Protocol)1. HTTP의 개요HTTP는 월드 와이드 웹(WWW)에서 데이터를 주고받기 위한 애플리케이션 계층 프로토콜입니다. 인터넷에서 웹 브라우저와 웹 서버 간에 HTML, 이미지, 비디오, JSON 등 다양한 리소스를 전송하는 데 사용됩니다.HTTP는 클라이언트-서버 모델을 기반으로 작동하며, 클라이언트가 요청(request)을 보내면 서버가 응답(response)을 반환하는 구조입니다.2. HTTP의 주요 특징비연결성(Connectionless)클라이언트가 요청을 보내고 서버가 응답을 하면 연결을 끊습니다.이를 통해 서버의 자원을 효율적으로 관리할 수 있습니다.하지만, 매 요청마다 새로운 연결을 수립해야 하기 때문에 오버..
AWS 라이트세일(Lightsail) + 젠킨스(Jenkins) 설치
·
Develop/DevOps
1. 라이트세일 인스턴스 생성라이트 세일에서 가용영역, 이미지, 플랜, 리소스 이름 작성해서 인스턴스 생성해준다    2. 서버 접속 후 명령어 실행 및 라이트세일 포트 열기해당 ip주소로 ssh프로그램 또는 라이트세일에서 지원해주는 연결방식을 사용하여 접속젠킨스로 사용할 포트 방화벽 열어두기    sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk -yjava -versionwget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > ..
인터프리터 언어와 컴파일 언어의 특징과 차이점
·
Develop/Coding
1. 인터프리터 언어인터프리터가 코드를 한 줄씩 읽어 즉시 실행합니다.특징실시간 실행: 코드를 실행할 때마다 한 줄씩 해석하며 즉시 실행.디버깅 용이: 코드 수정 후 바로 결과를 확인할 수 있어 디버깅이 빠름.플랫폼 독립성: 인터프리터만 있으면 어디서든 실행 가능.속도: 실행 시마다 해석하므로 초기 실행 속도가 느림.예시 언어: Python, JavaScript, Ruby, PHP, R 등.장점:코드 수정 후 즉각 반영 가능.개발 속도가 빠름.단점:실행 속도가 느릴 수 있음.배포 시 소스 코드가 노출될 가능성이 있음.2. 컴파일 언어코드를 한 번에 기계어로 번역한 후 실행합니다.특징사전 번역: 전체 코드를 기계어로 번역(컴파일)한 후 실행.빠른 실행 속도: 컴파일 후 실행 시 기계어가 바로 실행되어 속도..
TCP, UDP 특징과 차이점
·
Develop/Network
1. TCP (Transmission Control Protocol)TCP는 신뢰성이 높은 연결 지향(연결 설정 필요) 프로토콜입니다. 데이터 전송 시 패킷이 손실되거나 순서가 뒤바뀌는 것을 방지하기 위해 엄격한 오류 검출 및 복구 메커니즘을 사용합니다. 주요 특징은 다음과 같습니다.연결 지향적: 데이터 전송 전에 송신자와 수신자 간에 연결을 설정합니다. (3-way Handshake)신뢰성 보장: 데이터가 손실되거나 손상되면 재전송을 통해 복구합니다.데이터 흐름 제어: 송수신 속도를 조정해 네트워크 혼잡을 방지합니다.패킷 순서 보장: 데이터가 올바른 순서로 도착하도록 정렬합니다.오버헤드: 패킷 헤더가 크고, 재전송 및 확인 절차로 인해 성능이 다소 저하될 수 있습니다.주요 사용 사례:HTTP/HTTPS..
DRY, KISS, YAGNI 프로그래밍 원칙
·
Develop/Coding
DRY 원칙 (Don't Repeat Yourself)DRY 원칙은 코드에서 중복을 피하는 것을 목표로 합니다. 즉, 동일한 정보나 로직이 여러 곳에서 반복되지 않도록 코드를 작성하는 것입니다. 중복 코드는 유지보수 시 불필요한 위험을 초래할 수 있으며, 한 곳에서 수정이 필요할 때 다른 모든 중복된 부분을 동시에 수정해야 하기 때문에 오류가 발생하기 쉽습니다.DRY 원칙을 적용하면 코드의 재사용성과 유지보수성이 크게 향상됩니다. 중복을 제거하고 코드의 단일 소스를 유지함으로써, 특정 기능의 수정이 필요할 때 해당 소스만 수정하면 되기 때문에 관리가 훨씬 용이합니다. 예를 들어, 함수나 클래스를 재사용 가능한 형태로 작성하여 반복적인 로직을 하나의 위치에 모아둘 수 있습니다.DRY 원칙은 설계 단계부터 ..
OSI 7계층이란
·
Develop/Network
OSI 7계층(Open Systems Interconnection Reference Model)은 네트워크 통신을 체계적으로 나누어 이해하고 설계하기 위해 국제표준화기구(ISO)가 제정한 모델입니다. 각 계층은 특정한 역할과 기능을 담당하며, 계층 간 상호작용을 통해 데이터가 전달됩니다. 아래는 OSI 7계층에 대한 자세한 설명입니다.1. 물리 계층 (Physical Layer)데이터 전송의 물리적 매체와 방법을 정의하는 계층입니다.전기 신호, 광 신호, 무선 신호 등으로 데이터를 전달합니다.케이블, 커넥터, 전송 속도, 전압 등 물리적 요소를 다룹니다.장비 예: 허브, 리피터, 케이블.2. 데이터 링크 계층 (Data Link Layer)물리 계층을 통해 전달된 데이터를 프레임 단위로 관리하며, 신뢰성..
보일러플레이트 코드란
·
Develop/Coding
보일러플레이트 코드(Boilerplate Code)란?보일러플레이트 코드(Boilerplate Code)는 프로그램의 구조나 기본 동작을 설정하기 위해 반복적으로 작성해야 하는 표준화된 코드 부분을 말합니다. 이런 코드는 대개 기능 구현과는 직접적인 관련이 없지만, 프로그램이 정상적으로 실행되기 위해 필요합니다. 예를 들어, 언어의 특성상 반드시 작성해야 하는 클래스 정의, 인터페이스 구현, getter/setter 메서드 등이 포함될 수 있습니다.보일러플레이트 코드는 필수적이지만, 개발자 입장에서는 반복적이고 불필요하게 느껴질 수 있습니다. 따라서 현대 프로그래밍 언어들은 이러한 코드를 줄이기 위해 다양한 기능을 제공합니다. 예를 들어, **코틀린(Kotlin)**에서는 자바(Java)에서 필요했던 많..
DTO, VO, Entity, POJO 의 특징과 차이점
·
Develop/Coding
1. DTO (Data Transfer Object)정의:데이터 전송 객체로, 계층 간 데이터 전송을 목적으로 사용됩니다.주로 컨트롤러와 서비스 간, 또는 외부 API와 데이터를 주고받을 때 사용됩니다.비즈니스 로직은 포함하지 않으며, 데이터 구조와 Getter/Setter만 포함됩니다.특징:역할: 데이터를 캡슐화하여 네트워크 또는 계층 간에 전송.변경: 전송 과정에서만 사용되므로 유연하게 설계 가능.목적: 필요한 데이터만 담아 과도한 데이터 전송 방지.예시 코드:@Getter@Setterpublic class UserDTO { private String name; private String email; // 기본 생성자 public UserDTO() {} // 생성자 p..