전체 글 182

[운영체제] : 쓰레드는 많으면 좋나요? - 3탄 : 정말 쓰레드는 많으면 좋나?

이번에는 쓰레드가 정말 많으면 좋은지, 다각면에서 알아보고 정리하려고 한다. 프로세스와 쓰레드에 대해 명확히 이해하느라 이 답에 대한 질문을 알기까지 오랜 시간이 걸렸다. 이번 장에서는 프로세스와 쓰레드에 대해 다시 복기하고 쓰레드가 많으면 좋은지 안좋은지에 대한 해답을 찾으려 한다.0. 들어가기 전에0.1 Context Switching(문맥 교환)Switching the CPU to another process requires saving the state of the current process and restoring the state of a different process. This task is known as as context switch. 다른 프로세스에서 CPU를 switch하는건 현..

[Spring Framework] SOAP 와 REST(3부작) : 1탄 - SOAP가 뭐야?

오늘도 여러 회사의 공고를 기웃거리는 우리의 키메라! 오늘 그의 눈에 포착된 것이 있으니... 바로 SOAP! SOAP에 대한 이해를 요구하는 요구사항이 적혀 있기에, 키메라는 이에 대해 공부하고 Spring 에서 제공하는 예제를 만들어보고자 한다. 해당 글은 실제적으로 SOAP를 보고 이해하는 방향으로 작성했다. 그러면 떡본 김에 제사 좀 지내보자 숭구리당당 숭당당~ 해당 글을 통해 키메라는 SOAP가 무엇인지, 구조와 문법은 어떤지, 마지막으로 어떻게 사용하는지 볼 예정이다. 들어가기 전에... WS와 WAS 란?다들 정말 많이 들어본 면접 단골 문제이다. 간단히 필자의 기억을 더듬어 보면... WS는 Web Service, WAS 는 Web Application Service로 WS는 단순히 ..

[운영체제] : 쓰레드는 많으면 좋나요? : 2탄 - 스레드 탐구

지난 시간에는 프로세스에 대해 알아보았다. 현재 쓰레드는 많으면 좋냐는 것을 찾기 위해 처음부터 밟아가고 있다. 이제 스레드에 대해 알아보고 이를 프로세스와 비교해볼 것이다. 아, 참고로 프로세스의 내용은 정말로 어그로가 아니다! (ㅠㅠ...) 들어가기 전에 중앙 처리 장치(CPU)?서버의 핵심 계산 장치인 하드웨어 구성 요소입니다. 서버 및 기타 스마트 장치는 데이터를 디지털 신호로 변환하고 이에 대한 수학적 연산을 수행합니다.코어?CPU 내부에 있는 독립적인 연산 유닛으로, 사람의 두뇌와 같은 역할을 한다.코어가 4개라면 동시에 4개의 일을 생각하고 처리 가능!보통 코어 하나에 하나의 스레드가 배정이 된다.(하이퍼 스레드 기술을 통해 코어 하나에도 여러개의 스레드를 배정 가능) 병행성과 병렬성?병행..

[운영체제] : 쓰레드는 많으면 좋나요? - 1탄 : 프로세스 탐구

필자는 다음과 같은 질문을 받았다. 면접관 : 쓰레드가 뭐죠? 쓰레드를 많이 써서 사용하면 항상 빠를거 같은데 ... 정말 그런가요?나 : (아닌거 아는데 설명을 못함) ㅠㅠ... 늘 공부를 할 때는 대충이 아닌 꼼꼼함이 강려크한 엔지니어의 소양이라고 생각한다. 이 근원적으로 가장 먼저 세트로 같이 비교되는 프로세스가 뭔지를 먼저 알아볼 것이다.그 다음에 쓰레드가 도대체 뭔지, 밑바닥부터 다시 다 관련 서적과 내용을 내 눈으로 담고 정리할 예정이다. 그러면... 해당 질문에 대한 답변을 위한 여정을 시작해 보겠다. 해당 내용은 운영체제 10판 (원서명 : Operating System Concepts, 10th Edition, International Edition)퍼스트북 / Abraham Silber..

[Java] Stream(스트림) - 2탄

지난번에 Stream1에서 읽다가 말았는데, 이번에는 stream을 Parallelism 부터 이어서 읽어보도록 하겠다. 이를 이해하는데 thread관련 글을 읽으면 좀 더 도움이 될 것이다. 잠시 기억 복기... Steam이란?자바에서의 스트림은 뭔가 데이터 요소들의 연속, 즉 데이터 파이프 라인을 만들어서 데이터를 다루도록 도와주는 도구 데이터 파이프라인? 데이터의 수집부터 처리, 변환, 저장에 이르기까지 일련의 단계를 거치는 과정 Stream의 특징?No storage, Funtional in nature, Laziness-seeking, probably unbounded, consumable! 1. Parallelism(병렬성)명확히 for-loop을 가지고 원소들을 처리하는건 순차적이다. ..

[Java] 람다 표현식(Lambda Expreesion) - 2탄

지난 람다 표현식 1탄에 이어서 이번에는 뒤의 글을 더 읽어보도록 하겠다. 2. 람다 표현식의 이상적인 사용 케이스(Ideal Use Case For Lambda Expressions) 8부터~접근 8: 더 확장해서 Generic을 사용하기이전 코드에서 보았던 processCarsWithFunction 을 다시 보자. 다음은 어떤 데이터 타입의 요소라도 포함하는 컬렉션을 매개변수로 받는 제네릭 버전이다. public static void processCarsWithFunction( Iterable source, Predicate tester, Function mapper, Consumer block) { for (X p : source) { ..

[Java] 스트림(Stream)이란? - 1탄

공식문서 읽기 본부의 수장이 되고자 하는 우리의 공대키메라! 이번 시간에는 스트림에 대한 공식 문서를 읽어보고 정리할 것이다. 그럼 후비고~ 1. Stream이란? A sequence of elements supporting sequential and parallel aggregate operations.순차적 및 병렬 집계 작업을 지원하는 요소들의 시퀀스 그러니까, 순차적 및 병렬 집계 작업을 지원하는 요소 시퀀스라는데... 와닿지가 않는다. 위에 사전에서 봤듯이 일반적인 의미는 뭔가 흐름을 의미한다. 컴퓨터 사이언스에서는 다음과 같이 설명한다 In computer science, a stream is a sequence of potentially unlimited data elements mad..

[Java] 람다 표현식(Lambda Expressions) - 1탄

지난 시간에는 익명 클래스에 대해 알아보았는데, 익명 클래스를 설명하던중 이런 말이 있었다. EventHandler인터페이스가 오직 하나의 메소드만 포함하기 떄문에 익명 클래스 표현식 대신에 람다 표현식을 사용할 수 있다. 여기서 람다 표현식이란 것이 대해 명확히 이해하는것이 이 글의 목적이다. 이번에도 친절하게도 모든 정보는 공식 문서에 정의되어 있다. 이를 읽어보면서 부족한 부분은 설명에 살을 붙이도록 하겠다. 참고로 이 모든 글의 출처는 하단에 표시한 공식 문서에 있으니 다들 공식문서 읽어보자. 해당 글은 다음 github에 코드를 올려놨으니, 궁금한 분은 보면서 읽어도 좋다. 코드 보러 가기 (oracle에서 제공하는 코드 약간 변경한거는 안비밀) 1. Lambda Expressions익명..

카테고리 없음 2025.04.29

[Java] 익명 클래스(Anonymous Class)

지난번 Local Class(로컬 클래스) 에 이어서... 드디어...! 익명 클래스와 람다에 대해 알아보려고 한다. 원래는 단순하게 익명 클래스에 대해서만 알아보려고했는데, 람다가 자주 비교대상으로 쓰이기에 람다를 추가해서 보려니 관련 정보(inner class, local class, enclosing class 등...)에 관한 지식이 튀어나와서 이를 먼저 알아보았다 휴... 이번에도 역시 공식문서를 중심으로 읽어나갈 계획이다. 1. 익명클래스 (Anonymous Class)익명 클래스는 우리 코드를 더 정확하게 만들 수 있도록 한다. 동시에 클래스를 선언하고 인스턴스화 할 수 있도록 한다. 마치 이름이 없는 지역 클래스(local class) 같다. 만약 로컬클래스를 한 번만 사용할거면 익명..

[Java] : Local Class알아보기

지난 글에서 Nested Class와 Inner Class가 뭔지 공식문서를 읽어 보았는데, 이어서 Local Class, Anonymous Class 그리고 Lambda 에 대해 읽을 예정이다. 0. Enclosing Class?Enclosing Class는 바디 안에 다른 클래스를 포함하고 있는 클래스이다. 그런데 생각해보니 Outer class도 있자나? 이전에 Inner class에 대해 공부할 때 Inner class의 외부 클래스를 Outer class라고 부를 수 있는데 enclosing class와 outer class가 뭐가 다른지 이번에는 GPT의 힘을 빌려보았다. 키메라 : 두 개는 비슷한데 뭐가 다른거야?MyClass.javapublic class MyClass { void ..