본문 바로가기

반응형

개발

[Network] SSL/TLS란? 소개 SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)는 모두 웹 통신에서 보안을 제공하는 프로토콜입니다. SSL은 초기 버전이며, TLS는 SSL의 후속 버전으로 개발되었습니다. TLS는 일반적으로 SSL 3.0의 개선된 버전으로 간주되며, 이제는 주로 TLS 용어가 사용됩니다. 둘 다 4계층에서 동작 SSL (Secure Sockets Layer): SSL은 웹 브라우저와 웹 서버 간의 데이터 전송을 보호하기 위한 보안 프로토콜로 개발되었습니다. 그러나 SSL의 초기 버전에는 취약점이 있어서, 이러한 취약점을 해결하고 보안을 향상시키기 위해 TLS가 개발되었습니다. TLS (Transport Layer Security): TLS는 SSL의 후속 버전.. 더보기
[Network] Http CORS란? CORS는 "Cross-Origin Resource Sharing"의 약어로, 웹 애플리케이션에서 다른 도메인에 있는 리소스에 접근하는 메커니즘을 나타냅니다. 웹 브라우저에서 동일 출처 정책(Same-Origin Policy)은 웹 페이지가 하나의 도메인에서 불러온 리소스에만 접근할 수 있도록 하는 보안 메커니즘입니다. 그러나 이 정책은 때때로 다른 도메인에서 제공되는 리소스에 접근해야 하는 상황이 발생할 수 있습니다. 쉽게 말하자면 허용된 클라이언트만 사용할 수 있게 해주는 것이다. CORS는 이러한 제약을 완화하여, 웹 브라우저에서 다른 도메인에 있는 리소스에 안전하게 접근할 수 있도록 하는 표준 메커니즘입니다. 웹 개발자가 서버에게 어떤 도메인에서의 요청을 허용할지 명시하고, 브라우저는 이 규칙을 .. 더보기
[Network] CDN이란 CDN은 "Content Delivery Network"의 약어로, 콘텐츠 전송 네트워크를 나타냅니다. CDN은 웹사이트와 애플리케이션에서 사용되는 정적인 콘텐츠를 효율적으로 전송하기 위한 기술입니다. 일반적으로, 웹사이트의 정적 콘텐츠(이미지, 스타일시트, 스크립트 등)는 사용자가 해당 웹사이트에 접속할 때마다 웹서버에서 전송됩니다. 하지만 사용자와 서버 사이의 거리가 먼 경우, 이러한 콘텐츠의 전송 속도가 느려질 수 있습니다. 또한, 웹사이트의 트래픽이 많은 경우 서버에 부하가 걸려 성능이 저하될 수 있습니다. 이러한 문제를 해결하기 위해 CDN은 전 세계에 분산된 여러 서버와 데이터 센터를 활용하여 정적 콘텐츠를 빠르고 효율적으로 전송합니다. 사용자가 특정 콘텐츠에 접속할 때, CDN은 가장 가까운.. 더보기
[Java] Singleton 과 static 차이 소개Singleton 과 static의 차이를 설명하려고 한다. 이 글을 쓰게 된 이유: Singleton은 spring boot에서 bean의 개념이라고 다들 말하는데 객체를 하나만 생성한다는 것에 궁금증이 생겼다. Static이랑 다를게 뭐지? 라는 생각이 들어 이 글을 쓰게 되었다.SINGLETON vs STATIC싱글톤(Singleton)과 static은 둘 다 객체나 메서드에 대한 개념이지만, 그 사용 목적과 동작 방식에서 차이가 있습니다. 목적: 클래스의 인스턴스가 오직 하나만 생성되도록 하는 디자인 패턴입니다. 주로 객체의 공유나 중앙 집중적인 관리를 위해 사용됩니다. 특징: 클래스의 인스턴스가 하나만 존재하므로, 여러 곳에서 해당 인스턴스에 접근하여 데이터를 공유할 수 있습니다. 주로 디자.. 더보기
[Spring Boot] jpa n+1 문제 소개 N+1 문제는 데이터베이스 쿼리의 성능 이슈 중 하나로, 특히 Spring Data JPA와 같은 ORM(Object-Relational Mapping) 프레임워크를 사용할 때 발생할 수 있습니다. 이 문제는 관계형 데이터베이스에서 연관된 엔티티를 검색할 때 발생하며, 한 번의 쿼리로 필요한 데이터를 가져오지 않고 추가적인 쿼리를 여러 번 실행하는 상황을 말합니다. 예를 들어, 하나의 Post 엔티티와 여러 개의 Comment 엔티티가 있다고 가정해 봅시다. 예제 @Entity public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy = "post", fe.. 더보기
[Spring Boot] Spring에서 사용된 디자인 패턴 Singleton Pattern (싱글톤 패턴): 목적: 클래스의 인스턴스가 하나만 생성되도록 하는 패턴. 예제: Spring에서 @Service나 @Component 어노테이션을 사용하여 Bean을 정의하면 해당 Bean은 기본적으로 싱글톤 스코프로 생성됨. @Service public class MySingletonService { // 싱글톤으로 동작하는 서비스 } Factory Method Pattern (팩토리 메서드 패턴): 목적: 객체 생성을 서브 클래스에서 결정하도록 하는 패턴. 예제: Spring에서 @Bean 어노테이션을 사용하여 메서드를 통해 Bean을 생성하는 방식. @Configuration public class AppConfig { @Bean public MyService my.. 더보기
[Linux] setcap,getcap이란? 소개 리눅스에서는 setcap과 getcap이라는 두 명령어를 사용하여 실행 파일에 특정 권한을 설정하고 확인할 수 있습니다. 이 블로그에서는 이 두 명령어의 사용법과 예제를 살펴보겠습니다. 블로그를 쓰게 된 히스토리 아무리 권한을 봐도 똑같은데 apache 실행 파일인 httpd가 80번 포트를 권한 때문에 띄울 수 없다라는 내용을 확인하였고 기존에 실행되는 파일이 빨간 테두리에 검은 글씨인 것을 보고 구글링을 하던 도중 setcap으로 특정 포트의 권한을 일반 유저로 사용할 수 있다는 내용을 보고 알게되었다. TIP Linux는 root 권한이 아니면 1024 포트 이상만 띄울 수 있다.. 1. setcap 명령어 1.1 setcap이란? setcap 명령어는 실행 파일에 특정 권한을 부여하는데 사용.. 더보기
[ Concept ] HA( High Availability )란? 소개 고가용성(High Availability, HA)은 시스템이나 서비스가 일정 시간 동안 항상 사용 가능하고 작동할 수 있는 능력을 나타냅니다. 고가용성은 주로 정보 기술 (IT) 및 컴퓨터 시스템 분야에서 중요하게 다뤄지며, 업무 연속성과 신뢰성을 향상시키는 데 중점을 둡니다. A가 동작 못할시 B 서버로 B가 동작 못할시 A 서버로 이런식으로 구성을 하는것이 일반적인 예제이다. 고가용성을 구현하려면 몇가지 일반적인 방법은 다음과 같습니다: 여러 서버 및 데이터 센터 사용: 서비스를 여러 서버에 분산하고, 여러 지리적 위치에 데이터 센터를 구축하여 단일 장애 지점을 방지하고 전체적인 신뢰성을 높입니다. 로드 밸런싱: 트래픽을 여러 서버로 균등하게 분산하여 각 서버에 걸리는 부하를 분산시킴으로써 시스.. 더보기

반응형