목록2024/06/02 (7)
자바칩
난이도: Silver 2문제: https://www.acmicpc.net/problem/1138 주석에 써 놓은 설명만 보아도 이해가 될 것이다.바로 코드를 보자.123456789101112131415161718192021222324252627282930313233import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.StringTokenizer; public class P1138_한줄로서기 { public static void main(String[] args) throws IOException { Bu..
병렬성(Parallelism)과 동시성(Concurrency)은 컴퓨터 과학에서 서로 관련되지만 다른 개념이다. 이 두 개념은 주로 여러 작업을 동시에 처리하는 방식과 관련이 있다. 병렬성(Parallelism)병렬성은 여러 작업을 실제로 동시에 수행하는 것을 의미한다. 이는 여러 CPU 코어를 이용하여 여러 작업을 동시에 실행하는 방식이다. 병렬성은 주로 대규모 데이터 처리, 과학 계산, 그래픽 처리 등에서 성능을 향상시키기 위해 사용된다. 예시멀티코어 프로세서: 여러 코어를 가진 CPU에서 각 코어가 다른 작업을 동시에 처리하는 것GPU 연산: 그래픽 처리 장치(GPU)는 많은 작은 코어를 사용하여 병렬 처리를 수행한다.장점성능 향상: 여러 작업을 동시에 수행하므로 작업 완료 시간이 단축된다.효율적인..
프로세스와 쓰레드는 컴퓨터 프로그램을 실행하는 두 가지 기본 단위이다. 각 단위는 운영 체제에서 독립적으로 관리되며 고유한 특성을 가진다. 프로세스와 쓰레드의 차이점프로세스정의: 운영 체제에서 실행 중인 프로그램의 인스턴스메모리 관리: 각 프로세스는 독립된 메모리 공간을 가진다. 프로세스 간의 메모리 공유는 기본적으로 불가능하며, IPC(Inter-Process Communication) 기법을 사용해야 한다.오버헤드: 프로세스를 생성하고 관리하는 데는 많은 자원이 소모된다.안정성: 한 프로세스가 실패해도 다른 프로세스에 영향을 미치지 않는다.쓰레드정의: 프로세스 내에서 실행되는 작은 단위의 작업 흐름메모리 관리: 쓰레드는 프로세스 내의 메모리와 자원을 공유한다. 같은 프로세스의 모든 쓰레드는 동일한 메..
AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)AOP는 프로그램의 여러 부분에 걸쳐 공통적으로 사용되는 기능을 모듈화하는 프로그래밍 패러다임이다. 예를 들어, 로깅, 보안, 트랜잭션 관리 등의 기능은 다양한 클래스와 메소드에 걸쳐 필요할 수 있다. AOP는 이러한 공통 기능을 하나의 모듈로 분리하여 코드의 중복을 줄이고 유지 보수를 용이하게 한다. AOP의 목적OOP와 이름이 비슷하여 상반된 개념 같지만, 관점 지향 프로그래밍은 객체 지향 프로그래밍을 보완하기 위해 쓰인다. 기존 객체(Object) 지향은 목적에 따라 클래스를 만들고 객체를 만들었다. 따라서 핵심 비즈니스 로직이든, 부가 기능의 로직이든 하나의 객체로 분리하는데 그치고, 그래서 이 기능들을 어떻게 바라..
채용 공고로 좋은 기업(서비스 기업)인지 판단하는 법 1. 기술스택 2. 대표, 경영진 경력 3. 매출, 당기 순이익 4. CTO 존재 여부 5. 블라인드, 잡플래닛 등 기업 최근 리뷰 (3점~3.3점이 넘어가면 괜찮음) 1. 쓰레드와 프로세스의 차이점은? 메모리 공유 관점에서 가장 큰 차이점은? 우리가 쓰레드를 쓰면 프로세스를 쓸 때보다 좀 더 신경을 많이 써야 되는데 왜일까? 공부를 해보자. 컨텍스트 스위칭이라는 단어에 대해서 아는가? 컨텍스트 스위칭이라는 것이 맨 처음에 왜 나왔을까? 왜 컨텍스트 스위칭을 해야 하는가? 하나의 CPU에서는 몇 개 프로세스가 돌 수 있는가? 하나의 코어를 갖고 있는데 여러개의 프로세스를 동시에 돌리려고 시도를 했다. 그러면 어떻게 해야 하는가? 그래서 컨텍스트 스위..
parellel이랑 concurrency의 의미에 대해서 개념을 잡고 블로그에 글 작성하면서 정리하기 이것은 기본적인 CS적인 측면에서의 용어들이고 이걸 잘 알아야 이후에 이런 GC가 됐던 개발이 됐던 할 때 되게 중요하다. parellel은 병렬이고 concurrency는 동시성. 한글로 이 둘의 차이를 알아야 한다.질문에 답을 잘 하려면 1. 내가 학습해야 되는 내용이 책에 있으면 책을 선택해서 읽는 게 first이다. 그게 가장 탑질도 줄이고 잘 정리된 내용을 읽는 것이기 때문에 시간을 줄여준다. 2. 하지만 그렇지 않은 책들이 있다. 기본적인 코어 지식은 그대로 있되 그 뒤로 엄청 많이 발전했을 것이다. 이런 정보들은 첫번째로는 공식 블로그, 그 다음에 개발 블로그들 그 다음에 회사 기술 블로그...
자바 버전 체계에 대해서 알고 있는가? 자바 8이나 17을 많이 쓰는데 이유에 대해서 알고 있는가? - 버전은 자바를 쓰는 입장에서는 어떤 버전을 쓰는지는 좀 중요하다. 왜냐하면 버전에 따라 기능이 다르기도 하고 무엇보다 릴리즈 하는 쪽에서 이 버전에 따라서 유지보수 기간이 달라진다. 그래서 가능하면 이 버전 관련된 개념에 대해서는 알아두는 것이 좋다. 가끔 면접이 됐든 뭐가 됐든 보인이 해본 기술이라고 이제 이야기를 하면 왜 그걸 썼는지를 당연히 궁금하니까 물어본다. 그래서 지금 같은 경우 17을 썼다고 하면 왜 17을 쓰셨나요 라고 물어볼 수 있기 때문에 그럴 때 일단은 내가 쓰는 기술이 어떤 버전 관리를 하고 있고 어떤 기능들이 거기에 포함돼 있는지는 알고 쓰는게 좋다. 이 부분에 대해서 한번 보고..