![[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)
![[Linux / Ubuntu] VMware Tools 수동 설치](https://blog.kakaocdn.net/dn/cNmx0k/btsGbDbW1yY/767altqOB2ZCrUZi5Z3tC1/img.png)
![[Git] 소스트리(Sourcetree)로 브랜치(Branch) 다루기](https://blog.kakaocdn.net/dn/1Ulru/btsCy6Do1i6/E5Ooi4C792QgEUJrdGQKAk/img.png)
![[JSP] IntelliJ 에서 JSP 개발환경 만들기](https://blog.kakaocdn.net/dn/cNQOvx/btsC7qtoxqm/UuNX5TxNKYHXQ3Wk18KFyk/img.png)
![[GitHub] 소스트리로 clone, push, fetch, pull, pull request 하기](https://blog.kakaocdn.net/dn/b9E4q2/btsCOAoPpDi/FinGvyWAY6SIjfQbXnGhIk/img.png)

![[Spring Boot 핵심 원리와 활용] 자동 구성 라이브러리 제작 및 사용](https://blog.kakaocdn.net/dn/cwSsvf/btsNIM8HBg6/OjAQl7EpaaA2gmBs3KJaZK/img.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. package memory;import org.springframework.boot.autoconfigure.AutoConfiguration;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.context.annotation.Bean;@AutoConfiguration@ConditionalOnProperty(name = "memory", havingValue = "on")public class MemoryAutoConfig { @Bean public MemoryCon..
![[AWS] 고가용성 인프라 구축](https://blog.kakaocdn.net/dn/cLogjg/btsNIwYp288/y3JXMVkN1caNGdrqXLRxR0/img.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.가용성(Availability)이란 시스템이 서비스를 정상적으로 제공할 수 있는 가능성을 의미한다.서비스에 장애가 발생할 가능성이 극히 작은 시스템을 가용성이 높은(고가용성) 시스템이라고 말할 수 있다. 반대로 서비스가 다운되는 시간이 긴 시스템을 가용성이 낮은 시스템이라고 한다. 가용성을 높이기 위해서는 서비스 사용 불가능 시간을 최대한 발생시키지 않게 하고 설령 발생하더라도 그 시간을 짧게 만들어야 한다. 다운 타임을 줄이는 데 가장 중요한 설계 방법 중 하나가 시스템 이중화이다. 이 글에서 최종 구축하는 인프라 아키텍쳐는 아래와 같다.VPC에 가용 영역을 2개로 설정하고, 각 가용 영역에 퍼블릭, 프라이빗 ..
![[AWS] VPC(Virtual Private Cloud)](https://blog.kakaocdn.net/dn/u0v6O/btsNHg1xdZv/l7pkFTNz5GdOOmDzFI26N0/img.png)
이 글은 인프런의 지식 공유자 박재성님의 강의를 듣고 개인적으로 정리하는 글임을 알립니다.VPC의 개념VPC를 쓰는데 여러가지 이유가 있지만, 핵심적인 이유는 딱 한가지 보안 때문이다.VPC란 가상의 네트워크 공간을 의미한다. VPC를 활용하면 외부에서 직접 접근할 수 없는 독립적인 네트워크 환경을 구성할 수 있어서, 보안적으로 안전하게 리소스(EC2, RDS 등)를 사용할 수 있다. 예를 들어, EC2 인스턴스 2대가 있다고 가정하자. 그런데 1대의 인스턴스는 인터넷에 자유롭게 접근하면서 사용하고 싶고, 나머지 1대는 좀 더 안전하고 비공개로 사용하고 싶을 수 있다. 이럴 때 VPC를 활용하면 된다. VPC는 가상의 네트워크 공간이다.따라서 네트워크 공간의 크기를 정해야한다.AWS에서 EC2, RDS..
![[AWS] AWS 글로벌 인프라](https://blog.kakaocdn.net/dn/cE8M0u/btsNHrVYCLF/oLSDDIPiROFNDXRXiNf7Kk/img.png)
IaaS, PaaS, SaaS, 온프레미스 온프레미스(On-Premise)모든 것을 직접 구축하고 운영하는 방식이다.서버, 네트워크, 운영체제, 애플리케이션까지 모두 내가 책임지고 관리해야 한다. IaaS (Infrastructure as a Service)인프라(서버, 스토리지, 네트워크, 가상화)만 빌려쓰는 방식이다.OS부터 애플리케이션까지는 내가 직접 설치하고 관리해야 한다.대표 예: AWS EC2, Azure VM, GCP Compute Engine PaaS (Platform as a Service)운영체제, 미들웨어, 런타임 환경까지 제공해주며, 개발자는 데이터와 애플리케이션만 올리면 되는 방식이다.대표 예: Heroku, AWS Elastic Beanstalk, Google App Engine..
![[java] 백준 1707번 문제(이분 그래프)](https://blog.kakaocdn.net/dn/B8q5O/btsNCxBYB8b/fGukbbDKDjTSzdwEJPcJ01/img.png)
원본 링크 : https://www.acmicpc.net/problem/1707문제설명 소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Boj_1707{ static ArrayList[] list; // 인접 리스트 static int[] colors; // 색상 배열 public static void main(String[] args) throws I..
![[스프링 핵심원리 - 고급] 스프링 AOP 실무 주의사항](https://blog.kakaocdn.net/dn/TAew8/btsNCn0y258/6A8YTSm00tIyYiv8zGWsu1/img.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.프록시와 내부 호출문제점스프링은 프록시 방식의 AOP를 사용한다.따라서 AOP를 적용하려면 항상 프록시를 통해서 대상 객체(Target)을 호출해야 한다.이렇게 해야 프록시에서 먼저 어드바이스를 호출하고, 이후에 대상 객체를 호출한다.만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고, 어드바이스도 호출되지 않는다.AOP를 적용하면 스프링은 대상 객체 대신에 프록시를 스프링 빈으로 등록한다. 따라서 스프링은 의존관계 주입시에 항상 프록시 객체를 주입한다.프록시 객체가 주입되기 때문에 대상 객체를 직접 호출하는 문제는 일반적으로 발생하지 않는다.하지만 대상 객체의 내부에서 메서드 호출..
![[Spring 핵심원리 - 고급] 포인트컷 지시자(PCD)](https://blog.kakaocdn.net/dn/camE9w/btsNB9IbB1x/Ig1zlSSXVDqGie7uR2PzSk/img.png)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.애스펙트J는 포인트컷을 편리하게 표현하기 위한 특별한 표현식을 제공한다.예) @Pointcut(“execution(* hello.aop.order..*(..))”) 포인트컷 표현식은 AspectJ pointcut expression 즉 애스펙트J가 제공하는 포인트컷 표현식을 줄여서 말하는 것이다.포인트컷 표현식은 execution 같은 포인트컷 지시자(Pointcut Designator)로 시작한다. 줄여서 PCD라 한다. 포인트컷 지시자의 종류execution : 메소드 실행 조인 포인트를 매칭한다. 스프링 AOP에서 가장 많이 사용하고, 기능도 복잡하다.within : 특정 타입 내의 조인 포인트를 매칭한다...
![[네트워크 이론] 무선 네트워크](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)이라는 개념으로 수치화할 수 있으며, 이는 전체 사용 시간 중 실제로 사용 가능한 시간의 비율을 말한다.업타임을 전체 시간(업타임 + 다운타임)으로 나눈 값이 가용성이며, 일반적으로 이 수치가 높을수록 시스템이 안정적이라고 평가받는다.업타임 : 정상적인 사용 시간다운타임 : 정상적인 사용이 불가..