JAVA

JAVA

Synchronized

1. 멀티스레드 환경에서의 장점과 문제점 자바는 멀티스레드 프로그래밍을 지원하는 언어이다. 스레드란 프로세스 내의 작은 실행 단위를 말한다. 고유한 pid, 메모리 영역(여기서 말하는 메모리란 코드, 데이터, 힙과 스택 영역을 모두 아우른다), 파일 시스템과 레지스터 값들을 가지는 프로세스와 다르게 스레드는 자신의 스택 영역과 sp 및 pc만을 가진다. 같은 프로세스의 스레드는 프로세스의 대부분을 공유하기 때문에 컨텍스트 스위칭이 일어났을 때 그 비용이 프로세스간 컨텍스트 스위칭보다 훨씬 덜하다는 장점이 있다. 멀티스레딩을 활용하면 프로세스의 여러 부분을 동시에 실행할 수 있기 때문에 빠른 동작이 가능하지만, 여기엔 매우 커다란 문제점이 있다. 여러 스레드가 공유하는 프로세스 자원에 대한 race con..

JAVA

JAVA Socket 프로그래밍 : 로컬에서 웹서버 간단히 만들어보기

1. Socket에 관한 초초초초 간단 설명 TCP 통신을 위해 자바에선 Socket 클래스를 제공한다. TCP는 연결 지향형 전송 프로토콜이며, 신뢰성 있는 연결을 보장한다. 여기서 신뢰성 있는 연결이란, 송신측의 데이터가 수신측에게 도달하는 것을 보장하며, 그렇게 보낸 데이터에 손실이나 순서 뒤바뀜이 없음을 의미한다. Socket에도 두 가지가 있는데 데이터의 송수신, 즉 양방향 통신에 이용되는 Socket, 서버에서 클라이언트의 요청을 받기 위한 ServerSocket 클래스가 존재한다. 클라이언트 측에서 소켓을 이용해 요청을 날리려면 직접 Socket 객체에 서버의 포트번호와 IP를 지정해 stream 형식의 데이터를 넣어 보내줘야한다. 서버 측에서 특정 포트 번호를 생성자로 넣어 ServerSo..

JAVA/OOP

객체지향 디자인 패턴

객체지향 프로젝트를 설계하는데 자주 쓰이는 구조인 디자인 패턴 몇 가지를 살펴보도록 하겠다. 딱딱하게 외우기보다는, 디자인 패턴의 구현 과정을 따라가며 패턴 이름과 연관성을 따져가며 이미지화 하는 것이 좋을듯! 1. 싱글톤 패턴 (Singleton Pattern) 인스턴스를 하나만 만들어서 쓰는 패턴. 인스턴스를 한 개만 만들면 되는 DB 커넥션, 로그 기록, configuration 등의 클래스가 싱글톤 패턴으로 만들어진다. 불필요한 메모리 낭비를 줄이고, 전역 변수를 넣어 여러 인스턴스들이 값을 공유하게 할 수도 있다. 클래스 속성 값으로 해당 클래스 타입의 static 속성값 하나를 둔다. 생성자는 private으로 두어 클래스 외부에서 인스턴스를 만들 수 없게 한다. static getInstan..

JAVA/OOP

객체지향 설계 5원칙 : SOLID

 프로그램을 설계할 땐 모듈 간 결합도는 낮추고, 모듈 내 응집도를 높여야 한다는 원칙이 있다. 모듈 간의 상호 의존성을 낮춰 한 부분이 조금 변한다고 해서 전체 시스템이 망가지지 않게 해야하고, 연관성이 있는 요소들을 하나의 모듈로 집중시켜 재사용 및 유지보수성을 높이는 것이다. 객체지향적 관점으로 위 원칙을 지키기 위해 나온 개념이 객체지향 설계 5원칙, SOLID이다. 1. SRP(단일 책임 원칙) : 하나의 모듈은 하나의 책임만을 갖는다. 나(부추)는 학생이기도, 어머니의 딸이기도, 누군가의 친구이기도 하다. 각각의 사회적 역할에서 나(사람)의 행위를 Person 객체에 정의해보았다. public class Person { public void study() { System.out.println..

김부추
'JAVA' 카테고리의 글 목록 (5 Page)