[JAVA] 동기화 sychronized
·
STUDY/JAVA
스레드동기화와 상호배제란? 동기화 : 여러 스레드나 프로세스가 공유 자원에 접근할 때, 동시에 접근하는 것을 막고 순서를 조정하여 데이터 일관성을 유지하는 것을 의미합니다. 멀티 스레드 환경에서 여러 스레드가 동시에 공유 자원에 접근할 때, 스레드 간의 경쟁이 발생합니다. 이 경쟁은 예상치 못한 결과를 초래할 수 있으며, 스레드 간의 실행 순서나 작업을 조율하지 않으면, 데이터 일관성을 유지할 수 없게 됩니다. 따라서 스레드 간의 동기화는 상호 배제, 메시지 전달, 교착 상태 등의 문제를 방지하고, 프로그램의 안정성과 일관성을 유지하는 데 중요한 역할을 합니다. 자바에서는 synchronized 를 사용하여 스레드 간의 동기화를 구현할 수 있습니다. 상호배제 : 공유 자원을 여러 프로세스나 스레드에서 동..
[JAVA] ReentrantLock 설명
·
STUDY/JAVA
ReentrantLock란? 동기화된 메소드와 문장을 사용하여 액세스 할 수 있는 암시적인 모니터 잠금 기능과 같은 기본적인 동작과 의미를 가진 Reentrant 상호 간의 상호 배제된 상호 배제 잠금 기능을 의미한다. 이는 마치 뮤텍스와 많이 흡사한 모습을 띄고 있다. 즉, 상호 배타적 락이며 기본적으로 synchronized 키워드를 이용한 암시적인 모니터와 같이 동작한다. 동기화에는 아래와 같은 내용들이 있는데 이중 ReentrantLock는 Mutex라고 생각하면 쉽다. 방법 설명 임계영역(critical section) 공유 자원에 대해 단 하나의 스레드만 접근하도록 한다. (하나의 프로세스에 속한 스레드만 가능하다) 뮤텍스 (mutex) 공유 자원에 대해 단 하나의 스레드만 접근하도록 한다. ..
[Web] Endpoint에 대한 설명
·
STUDY/WEB
API API(응용 프로그램 프로그래밍 인터페이스)는 서로 다른 소프트웨어 응용 프로그램이 서로 통신할 수 있도록 하는 일련의 프로토콜, 루틴 및 도구입니다. API는 소프트웨어 구성 요소가 상호 작용하고 데이터를 교환하는 방법에 대한 규칙을 정의합니다. REST API REST API(Representational State Transfer API)는 HTTP 프로토콜을 사용하여 클라이언트와 서버 간에 데이터를 전송하는 API 유형입니다. 표준 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 다양한 작업을 나타내고 HTTP 상태 코드를 사용하여 해당 작업의 성공 또는 실패를 나타내는 REST 아키텍처 스타일을 기반으로 합니다. Endpoint 엔드포인트는 특정 리소스 또는 작업..
[jQuery] 문자열 치환 알고리즘
·
STUDY/jQuery
// key와 value값이 있는 배열을 선언합니다. const keyValueArray = [ { key: 'apple', value: '사과' }, { key: 'banana', value: '바나나' }, { key: 'orange', value: '오렌지' }, // ... ]; // textarea 엘리먼트를 선택합니다. const $textarea = $('textarea'); // textarea에 입력된 값을 감지하는 이벤트 리스너를 등록합니다. $textarea.on('input', function() { let inputValue = $textarea.val(); // 입력된 값 for (const keyValue of keyValueArray) { const regex = new Re..
[Network] 포트포워딩 Port-Forwarding
·
STUDY/WEB
펌글입니다 - 출처 : https://storytown.tistory.com/14 포트포워딩(Port-Forwarding) 이란? Port Forwarding공유기를 사용하면 한번씩은 들어보고 검색 해봤을만한 단어입니다. 이 포스트는 포트포워딩 설정 방법이 아닌 포트포워딩이 무엇인지에 대해 알아보겠습니다.우선 사전적 의미 그 storytown.tistory.com 포트포워딩 Port-Forwarding 공유기를 설치하게 되면 공유기와 연결된 PC들은 192.168~로 시작하는 IP를 공유기로부터 부여받게 됩니다. ISP 업체로부터할당 받은 IP 61.43.52.108은 공유기가 가지게 됩니다. 공유기를 기점으로 공유기 뒤에 있는 PC들의 IP를 내부 IP, 공유기의 IP를 외부 IP라고 부릅니다. 집이 ..
[Web] URL 구조 설명
·
STUDY/WEB
펌글입니다 - 출처 :https://cotak.tistory.com/45 protocol: 통신규약, 사용자가 서버에 접속할 때 어떤 방식으로 통신할 지 정의한다. HTTP(Hyper Text Transfer Protocol): 웹 브라우저와 웹 서버가 서로 데이터(하이퍼 텍스트)를 주고받기 위해 만든 통신규약 HTTPS(Hyper Text Transter Protocol Secure): HTTP에서 보안이 강화된 버전. 자세한 설명은 영상을 참고 host(domain): 인터넷에 접속되어 있는 각각의 컴퓨터를 가리키는 주소 port: 포트번호 한 개의 컴퓨터엔 여러 개의 서버가 존재할 수 있다. 즉, 포트번호를 통해 어떤 서버를 이용할 지 결정한다. 웹서버는 전세계적으로 80번 포트를 이용하는 것이 표..
[JS] wss와 ws 차이점
·
STUDY/JavaScript
웹소켓 HTTP 통신을 이용하면 클라이언트에서 서버에 요청을 보내야만 서버에서 응답을 할 수 있습니다. 즉, 서버에서는 요청을 받지 않으면 클라이언트에 통신할 수 없는 것입니다. 이러한 문제점을 해결하기 위해서는 양방향으로 통신할 수 있는 웹 소켓 통신을 이용해야합니다. 웹 소켓 통신 연결은 아래 코드와 같은 방법으로 시작합니다. let socket = new WebSocket("ws://chanstory.dev"); 'http', 'https' 프로토콜과 다르게 'ws', 'wss' 프로토콜을 사용합니다. 'ws', 'wss'의 차이는 'http', 'https'와 같은 관계로 보안과 신뢰성에서 차이가 있습니다. wss와 ws 차이점 "wss"와 "ws"는 모두 WebSocket 프로토콜을 사용하는 네..
[Web] Mixed content 에러 - https ↔ http 통신 문제
·
STUDY/WEB
Mixed Content 에러 문제 이해 로컬에서 잘 작동하던 웹프로젝트가 배포 후 문제가 발생했다. 프로젝트에서 가져와 사용하던 api가 문장분리 api와 맞춤법검사 api로 두가지였는데 테스트를 해보니, 문장분리 api사용은 문제가 없었는데 , 맞춤법 검사 api가 작동되지않는 문제가 있었다. 개발자도구 콘솔창을 보니 아래와 같은 에러가 보였다. Mixed Content: The page at '' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint ''. This request has been blocked; the content must be served over HTTPS. 찾아보니 Mixed Content 에러는 h..