![[Ubuntu] ssh 원격접속 보안 강화](https://blog.kakaocdn.net/dn/vOZdu/btsLzqF56aG/NTpSpB9fXfkkt4pbYiRsTk/img.jpg)
![[DB 성능 최적화] 인덱스(Index)](https://blog.kakaocdn.net/dn/nA2td/btsI9RE76dJ/L4bSgASjdtfHqK9KGAAC4k/img.png)
![[JPA] 병합(Merge)과 변경 감지(Dirty Checking)](https://blog.kakaocdn.net/dn/bFZDNu/btsIWaxR2k8/cSvhbm9EekSz6ubAKDeTkK/img.png)
![[Linux] 프로세스와 시그널](https://blog.kakaocdn.net/dn/bkg05L/btsKDFCOXxP/e8zaWDdfLamdv5yM8KsPZ1/img.jpg)
![[Docker] Docker Compose를 이용한 SpringBoot + MySQL + Redis 컨테이너 동시에 띄우기](https://blog.kakaocdn.net/dn/bQ4rTl/btsJfoCTWhU/Cfi1RaJSboO8ccgtmJepX1/img.webp)
![[Github Actions] 기본 문법 + 스프링부트 프로젝트 배포 자동화](https://blog.kakaocdn.net/dn/PPr6T/btsJtKAsSo9/rdlgK2vLTiqH2KUkdRBqkK/img.png)
![[Database] 트랜잭션 ACID, DB 연결구조와 세션](https://blog.kakaocdn.net/dn/c7kA33/btsFcQKD9PM/TAAAfUh62KENKRsO32rye0/img.png)
![[JAVA] 상속 - 타입 변환과 다형성(매우 중요)](https://blog.kakaocdn.net/dn/viEHP/btrVjnz9GER/zaV6B2QF28VWdHsPVapgZ1/img.jpg)
![[JSP] IntelliJ 에서 JSP 개발환경 만들기](https://blog.kakaocdn.net/dn/cNQOvx/btsC7qtoxqm/UuNX5TxNKYHXQ3Wk18KFyk/img.png)
![[Linux / Ubuntu] VMware Tools 수동 설치](https://blog.kakaocdn.net/dn/cNmx0k/btsGbDbW1yY/767altqOB2ZCrUZi5Z3tC1/img.png)
![[컴퓨터 구조] 명령어의 구조와 주소 지정 방식](https://blog.kakaocdn.net/dn/wjHiK/btr2vnkUSMK/rbuw2sVIIN2RkhYhKkVdGK/img.jpg)
![[Git] 소스트리(Sourcetree)로 브랜치(Branch) 다루기](https://blog.kakaocdn.net/dn/1Ulru/btsCy6Do1i6/E5Ooi4C792QgEUJrdGQKAk/img.png)

![[네트워크 이론] 무선 네트워크](https://blog.kakaocdn.net/dn/nY8rl/btsNyNZkiZ9/iMZwz4J0A3KkBHDVZCB1h1/img.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.와이파이와 802.11IEEE 802.11은 무선 LAN의 표준이며, 와이파이(Wi-Fi)의 기술 기반이다.유선 LAN이 IEEE 802.3(이더넷)을 기반으로 하는 것처럼, 무선 LAN은 IEEE 802.11 표준을 따른다.IEEE 802.11 뒤에 붙는 알파벳(b, g 등)은 세부 규격을 의미하며, 주파수로는 2.4GHz와 5GHz 대역이 주로 사용된다. 802.11의 세부 규격은 주파수, 전송 속도, 전송 거리, 변조 방식 등에 따라 달라진다.버전별로 성능 차이가 있기 때문에 제품 스펙에 따라 지원 주파수와 최대 속도도 달라진다.와이파이를 선택할 때 ‘2.4G’ 또는 ‘5G’라고 표기되는 것은 이..
![[네트워크 이론] 암호화 방식](https://blog.kakaocdn.net/dn/cP3iZR/btsNxpZN8ZV/4YrAaK5QKr5Oubhdrem1Y1/img.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.암호화(encryption): 원문 데이터를 알아볼 수 없는 형태로 변경하는 것을 의미복호화(decryption): 암호화된 데이터를 원문 데이터로 되돌리는 것을 의미암호화와 복호화는 비단 안전한 데이터 송수신뿐만 아니라 인증서 기반의 검증도 가능하게 한다. 암호와 인증서키는 원문 데이터를 수학적 연산을 통해 암호문으로 바꾸는 데 사용되는 값이며, 이 과정을 암호화 알고리즘이라 한다.암호문은 키 없이는 제3자가 의미를 알 수 없도록 설계되며, 복호화를 통해 원문을 되찾을 수 있다. 대칭키 암호화 방식과 공개키 암호화 방식대칭키 암호화 방식대칭 키 암호화 방식은 암호화와 복호화에 동일한 키를 사용하는 방..
![[네트워크 이론] 가용성, 이중화, 로드 밸런싱](https://blog.kakaocdn.net/dn/maRgI/btsNwauLGl4/86ep3OBiwBVOsbgRKog56K/img.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.가용성 가용성이란 시스템이나 네트워크가 얼마나 안정적으로 기능을 수행할 수 있는지를 나타내는 개념이다. 흔히 ‘불안정하다’, ‘안정적이다’라는 표현으로 대체되지만, 명확한 정의로는 일정 수준의 성능을 꾸준히 유지하며 기능을 제공할 수 있는 특성을 의미한다.가용성의 수준은 고가용성(high availability)이라는 개념으로 수치화할 수 있으며, 이는 전체 사용 시간 중 실제로 사용 가능한 시간의 비율을 말한다.업타임을 전체 시간(업타임 + 다운타임)으로 나눈 값이 가용성이며, 일반적으로 이 수치가 높을수록 시스템이 안정적이라고 평가받는다.업타임 : 정상적인 사용 시간다운타임 : 정상적인 사용이 불가..
![[java] 백준 2667번 문제(단지번호붙이기)](https://blog.kakaocdn.net/dn/dquY9k/btsNwoENbcm/yakZng0JKhJV3i4fsmyWik/img.png)
원본 링크 : https://www.acmicpc.net/problem/2667문제설명 소스코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main{ static int n; static int[][] map; // 지도 static boolean[][] visited; // 방문 배열 public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Array..
![[네트워크 이론] 응용 계층 - HTTP](https://blog.kakaocdn.net/dn/NO3Pl/btsNwbenIqZ/YN9gWiZGpQwkeBnvIC8oNK/img.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.HTTP의 특성HTTP 프로토콜은 중요한 4가지 특성이 있다.요청과 응답 기반미디어 독립적무상태성(Stateless)지속 연결 요청-응답 기반 프로토콜HTTP는 ‘클라이언트–서버 구조 기반의 요청–응답 프로토콜’이다.클라이언트와 서버가 있고, 클라이언트는 서버에게 요청 메시지를 전송하며, 서버는 클라이언트에게 요청에 대한 응답 메시지를 전송한다.HTTP는 이와 같이 클라이언트와 서버가 서로 HTTP 요청 메시지와 HTTP 응답 메시지를 주고받는 구조로 동작한다.그렇기에 같은 HTTP 메시지일지라도 HTTP 요청 메시지와 HTTP 응답 메시지는 메시지 형태가 다르다. 미디어 독립적 프로토콜HTTP를 정의..
![[네트워크 이론] 응용 계층 - DNS와 자원](https://blog.kakaocdn.net/dn/mqTJT/btsNvI4rLc6/dVgTEZg5iT3nla1GAiEXU0/img.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.도메인 네임과 네임 서버네트워크상의 어떤 호스트를 특정하기 위해 IP 주소를 사용한다.하지만 오로지 IP 주소만 사용하기에는 번거롭다. 통신하고자 하는 모든 호스트의 IP 주소를 기억하고 있기도 어렵기 때문이다.호스트의 IP 주소는 언제든지 바뀔 수 있기 때문이다. 여러분이 모든 친구의 전화번호를 전부 기억하기 어려운 것과도 비슷하다.그래서 일반적으로 사용자는 상대 호스트를 특정하기 위해 IP 주소보다는 도메인 네임을 많이 사용한다.도메인 네임은 호스트의 IP 주소와 대응되는 문자열 형태의 호스트 특정 정보이다.예를 들어 http://www.example.com, developers.naver.com,..
![[java] 백준 2644번 문제(촌수계산)](https://blog.kakaocdn.net/dn/bwC2Yy/btsNuXU31vs/urE2nSHVsGdjAQ4AtaZib1/img.png)
원본 링크 : https://www.acmicpc.net/problem/2644문제설명 소스코드import java.io.*;import java.util.*;public class Boj_2644{ static ArrayList[] list; // 인접 리스트 static boolean[] visited; // 방문 배열 static int[] depth; // 깊이(촌수) 배열 public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parse..
![[네트워크 이론] 전송 계층 - TCP와 UDP](https://blog.kakaocdn.net/dn/wKZkc/btsNt1xdnzv/4DWgCA9Kw7NtpfhI7rCcXK/img.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.TCP 통신 단계와 세그먼트 구조TCP는 통신(데이터 송수신)하기 전에 연결을 수립하고 통신이 끝나면 연결을 종료한다.그리고 데이터 송수신 과정에서 재전송을 통한 오류 제어, 흐름 제어, 혼잡 제어 등의 기능을 제공한다. MSSTCP의 연결 수립과 종료를 이해하려면 가장 먼저 MSS라는 단위와 TCP의 세그먼트 구조를 이해해야 한다.MSS는 Maximum Segment Size의 약자로, TCP로 전송할 수 있는 최대 페이로드 크기를 의미한다.MSS의 크기를 고려할 때 헤더 크기는 제외한다. 헤더의 크기까지 포함했던 단위인 MTU와는 대조적이다. TCP 세그먼트 헤더 송신지 포트(source port)..
![[네트워크 이론] 전송 계층 - IP의 한계와 포트](https://blog.kakaocdn.net/dn/GPXME/btsNruzEz2D/ePMtz6yg9tJQRxr9BS3wo1/img.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.네트워크 계층의 IP는 신뢰할 수 없는 통신과 비연결형 통신을 수행한다는 한계가 있다.네트워크 계층과 응용 계층 사이에 위치한 전송 계층은 신뢰할 수 있는 통신과 연결형 통신을 가능하게 하여 이러한 IP의 한계를 극복하고, 포트 번호를 통해 응용 계층의 애플리케이션 프로세스들을 식별하는 역할을 수행한다. IP의 한계신뢰할 수 없는 통신과 비연결형 통신IP의 한계라고 볼 수 있는 두 가지 중요한 특징이 있다.IP는 신뢰할 수 없는(비신뢰성) 프로토콜이자 비연결형 프로토콜이라는 점이다.달리 표현하면, IP를 통한 패킷의 전달은 신뢰성이 없는 통신이자 연결을 수립하는 과정이 없는 통신이다.이는 전송 계층이 ..
![[Spring 핵심원리 - 고급] 스프링 AOP 구현](https://blog.kakaocdn.net/dn/WfdW5/btsNt6kwUqa/i369yZtNfMFWIG6BZmLLv0/img.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.리포지토리 & 서비스import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Repository;@Slf4j@Repositorypublic class OrderRepository { public String save(String itemId) { log.info("[orderRepository] 실행"); //저장 로직 if (itemId.equals("ex")) { throw new IllegalStateException("예외 발생!"); } return..