본문 바로가기
728x90

전체 글60

JMM(Java Memory Model)이 개발자에게 미치는 영향 JMM(Java Memory Model)은 Java 프로그램이 컴퓨터 메모리와 상호 작용하는 방식과 스레드가 공유 변수를 통해 통신하는 방식에 대한 규칙과 지침을 정의합니다. 이는 멀티스레드 Java 애플리케이션에서 적절한 동기화 및 스레드 안전성을 보장하는 데 중요한 역할을 합니다. Java 메모리 모델의 주요 개념: 공유 메모리: Java 애플리케이션의 모든 스레드는 모든 스레드에 액세스할 수 있는 변수를 포함하는 동일한 기본 메모리를 공유합니다. 스레드별 메모리: 각 스레드에는 캐시 또는 공유 메모리의 변수 복사본을 포함하여 자체 로컬 메모리가 있습니다. 가시성: 한 스레드에서 공유 변수에 대한 변경 사항은 로컬 캐싱으로 인해 다른 스레드에 즉시 표시되지 않을 수 있습니다. 원자성: 32비트 또는 .. 2023. 12. 29.
synchronized 키워드와 java.util.concurrent 사용 간의 차이점 synchronized 키워드와 java.util.concurrent의 클래스는 모두 Java에서 동시성을 관리하는 데 사용되지만 세분성, 유연성 및 기능 측면에서 다릅니다. 이들 사이의 차이점을 살펴보겠습니다. 1. synchronized 키워드 세분성 메서드 수준: synchronized 키워드를 메소드 수준에서 적용하면 전체 메소드를 동기화할 수 있습니다. 블록 수준: 블록 수준에서도 적용할 수 있어 특정 코드 블록을 동기화할 수 있습니다. 객체 잠금 메서드나 블록이 동기화되면 개체 인스턴스나 클래스에 대한 잠금을 획득하여 다른 동기화된 메서드나 블록이 동일한 개체나 클래스에서 동시에 실행되는 것을 방지합니다. 내장 잠금 동기화를 달성하기 위해 객체나 클래스와 관련된 내장 잠금을 사용합니다. 예: .. 2023. 12. 28.
HTTPS의 'S' 이해하기: HTTP와 HTTPS의 중요한 차이점 이해하기 HTTP(Hypertext Transfer Protocol)와 HTTPS(Hypertext Transfer Protocol Secure)는 모두 인터넷을 통해 데이터를 전송하는 데 사용되는 프로토콜이지만 보안 측면에서 다릅니다. 다음은 웹 애플리케이션에서 HTTPS 사용의 보안 영향에 대한 비교 및 ​​설명입니다. 암호화: HTTP: 일반 텍스트 연결을 통해 작동합니다. 즉, 클라이언트와 서버 간에 교환되는 데이터가 암호화되지 않습니다. 이로 인해 가로채기와 도청에 취약해집니다. HTTPS: SSL(Secure Sockets Layer) 또는 그 후속인 TLS(Transport Layer Security)를 사용하여 전송 중에 데이터를 암호화함으로써 보안 계층을 추가합니다. 이 암호화는 무단 액세스로부터.. 2023. 12. 27.
OSI 모델의 중요성과 7개의 레이어 OSI(Open Systems Interconnection) 모델은 통신 또는 네트워킹 시스템의 기능을 7개의 추상화 계층으로 표준화하는 개념적 프레임워크입니다. 모델의 각 계층은 특정 작업을 수행하고 인접한 계층과 상호 작용하여 장치 간 통신을 촉진합니다. OSI 모델의 중요성은 네트워크 아키텍처와 프로토콜을 이해하고 논의하는 표준화된 방법을 제공하는 데 있습니다. 다음은 7개 레이어 각각에 대한 간략한 개요입니다. 물리적 계층(계층 1): 기능: 장치 간의 물리적 연결을 처리합니다. 이는 케이블, 커넥터 및 물리적 매체를 통한 원시 비트 전송과 같은 하드웨어 특성을 정의합니다. 데이터 링크 계층(레이어 2): 기능: 직접 연결된 두 노드 사이에 안정적인 링크를 생성하는 역할을 담당합니다. 프레이밍, .. 2023. 12. 26.
728x90