본문 바로가기

분류 전체보기231

기본기 닦기(4) - 프로세스/스레드, ㅇ 프로세스/스레드 만약 한 게임을 온라인상에서 pc에 다운로드 받는다고 생각해볼때, 다운로드받는동안 마우스커서도 안움직이고, 아무런 동작이 되지 않는다고 치면 많이 답답할 것이다. 하지만 옛날엔 이런방식이었다. 옛날엔 한번에 하나의 작업만 해낼 수 있었다. 하지만 현재는 그렇지 않다. 바로 pc가 여러개의 프로세스를 한번에 작업할 수 있는 멀티태스킹이 가능해졌기 때문이다. 작업관리자를 보면 여러개의 프로세스가 동시에 실행되고 있는걸 확인 할 수 있고, 고유의 PID도 있다는것을 확인 할 수 있다. 여러 프로세스를 함께 돌리는 작업은 동시적, 병렬적, 또는 혼합으로 이뤄진다. 동시성은 프로세스하나가 이것조금 저것조금 하면서 여러작업을 돌아가면서 일부분씩 진행하는것을 의미하고, 병렬성은 프로세서하나에 여러.. 2024. 1. 2.
기본기 닦기(3) - OOP의 4가지특징과 SOLID 간만에 쓴다. 연말이라고 너무 해이해졌다. 다시 열심히 해보자. 오늘은 OOP의 5대원칙(SOLID), 4가지 특징에대해 포스팅 해보겠다. ㅇ OOP의 4가지 특징 OOP는 다들 알다시피 객체지향프로그래밍이다. 객체지향 프로그래밍의 4가지 특징은 캡상추다. 캡슐화 : 쉽게말하면 데이터와 해당 데이터를 다루는 메서드를 클래스라는 캡슐에 넣어 객체의 내부 구현을 외부로부터 숨기고, 외부에선 오직 공개된 메서드를 통해서만 객체와 상호작용을 하도록 만든것이다. 왜 이렇게 할까? 정보은닉을 통한 장점으로 외부의 직접적인 접근을 방지해 객체의 내부 구현이 바뀌더라도 외부 코드에 미치는 영향이 최소화된다. 이는 유지보수성도 좋아진다. 구현방법은 멤버변수에 접근제어자를 private로 설정하고 getter/setter.. 2023. 12. 28.
기본기 닦기(2) - 빌드/컴파일, 웹서버/내장서버 ㅇ 빌드 프로젝트를 만들고 개발하는 과정에서 빌드라는걸 들어보거나 해봤을것이다. 근데 이걸 왜 해야하고 빌드가 대체 뭐하는 걸까? 빌드란 소스코드 파일을 실행 가능한 산출물로 변환하는 것이다. 정말 잘 정리해두신 블로그가 있어 거기서 발췌 해 봤다. 빌드? 프로그래머가 작성한 소스 코드를 실행할 수 있는 독립적인 형태(.war, .jar)로 변환하는 과정 및 결과를 말한다. 변환하는 과정에는 컴파일 과정도 포함이 된다. 예를 들어 개발자가 이클립스나 인텔리제이와 같은 IDE로 java코드를 작성하면 개발자는 '실행'버튼을 눌러서 코드의 결과물을 볼 수 있다. 그런데 개발자가 아닌 사용자가 코드의 결과물을 보려면? 사용자가 자바를 설치하고 IDE를 설치하고 해당 코드를 가져와서 실행을 눌러야 하는가? 아니.. 2023. 12. 22.
기본기 닦기(1) - 스레드, 동기/비동기, JVM ㅇ 스레드(Thread) 자바는 일반적으로 멀티 스레드 환경에 적합한 언어로 알고있다. 그런데 여기서 의문? 스레드가 뭔가? 나는 그저 작업의 한 단위 정도라고 생각을 했다. 자세히 알아보았다. 먼저 정의부터 알아보자면, 내가 아는 것처럼 프로그램 실행의 기본 단위이고, 하나의 프로세스 안에서 독립적으로 실행되는 명령어 집합이라고 한다. 여러 스레드가 하나의 프로세스 내에서 동시에 실행될 수 있으며, 각 스레드는 독립적으로 실행되는 코드의 흐름을 나타낸다. 스레드는 프로세스의 자원을 공유하며, 이를 통해 프로그램의 성능을 향상시키고 병렬 작업을 수행할 수 있다. 자바에서 스레드를 생성하려면, java.lang.Thread 클래스를 상속하거나, Runnable 인터페이스를 구현하는 클래스를 작성한다. cl.. 2023. 12. 21.