동기/비동기, 블로킹/논블로킹은 무엇이고 각각의 차이점은 무엇인가요?
·
CS
📝 면접 답변 보기 동기와 비동기는 '작업 결과를 누가 처리하냐'의 문제입니다.동기는 호출한 쪽에서 결과를 직접 받아서 처리하고, 비동기는 콜백이나 이벤트를 통해 나중에 별도로 처리됩니다. 블로킹과 논블로킹은 '제어권을 언제 돌려주냐'의 문제입니다.블로킹은 작업이 끝날 때까지 제어권을 반환하지 않아 대기하게 되고, 논블로킹은 작업 완료와 관계없이 즉시 제어권을 돌려줘서 다른 작업을 할 수 있습니다. 면접 질문 정리용 레포지토리https://github.com/unifolio0/backend-interview-study.git GitHub - unifolio0/backend-interview-studyContribute to unifolio0/backend-interview-study developmen..
@Async는 어떻게 동작하나요?
·
CS
📝 면접 답변 보기@Async는 스프링 AOP를 통해 동작합니다.스프링이 @Async가 붙은 메소드를 발견하면, 해당 클래스의 프록시 객체를 생성해서 빈으로 등록합니다.다른 빈에서 이 서비스를 주입받으면 실제로는 프록시 객체가 주입되고, 메소드를 호출하면 프록시 안에 있는 MethodInterceptor가 AsyncExecutionInterceptor를 실행합니다.AsyncExecutionInterceptor는 TaskExecutor를 사용해서 새로운 스레드에서 실제 메소드를 실행하고, 호출한 쪽에는 즉시 리턴해서 비동기 처리가 가능해집니다.중요한 점은, 같은 클래스 내부에서 @Async 메소드를 직접 호출하면 프록시를 거치지 않기 때문에 비동기로 동작하지 않습니다. 면접 질문 정리용 레포지토리http..
컴퓨터의 병렬 처리 기술
·
CS
들어가며이 글을 읽고 있는 지금 기기에서 어떤 작업을 하고 있나요? 이 글을 읽으며 음악을 듣거나 파일을 다운로드 하고 있을 수도 있고 또는 글을 적기 위한 참고자료로 활용하며 문서 작업을 하고 있을 수도 있습니다.일반적으로 컴퓨터의 cpu는 1개입니다. 그럼에도 컴퓨터는 위 같은 병렬 작업을 당연하다는 듯 수행하고 있습니다. 6코어, 10코어와 같이 코어가 여러 개라 가능하다 생각할 수도 있지만 생각해보면 코어 수보다 더 많은 작업들을 수행 할 때가 있습니다.운영체제를 공부하다보면 멀티 프로그래밍, 멀티 태스킹, 멀티 프로세싱, 멀티 코어, 멀티 스레딩이란 단어들을 마주할 수 있습니다. 이런 기술들로 인해 하나의 기기에서 여러 작업들을 동시에 할 수 있습니다. 하지만 대략적인 것만 알고 정확한 개념이나..
[매일메일] 객체 지향 프로그래밍이란 무엇이고, 어떤 특징이 있나요?
·
CS
해당 글은 매일메일 서비스를 이용하면서 받은 질문에 대한 공부 내용을 적은 글입니다.만약 잘못된 내용이 있으면 댓글로 남겨주세요!https://www.maeil-mail.kr/ 매일메일 - 기술 면접 질문 구독 서비스기술 면접 질문을 매일매일 메일로 보내드릴게요!www.maeil-mail.kr객체지향 프로그래밍이란객체지향 프로그래밍(OOP)는 프로그램 설계 방법론 중 하나입니다.프로그램을 객체(Object)라는 단위로 나누고 이런 객체들의 상호작용으로 프로그램을 구성하는 방식을 의미합니다.이런 객체지향이 생겨난 이유는 프로젝트의 유지 및 보수와 연결되어 있습니다.이전에는 절차적 프로그래밍을 사용했습니다. 절차적 프로그래밍은 프로그램을 함수 단위로 나눠 함수의 호출로 프로그램을 구성하는 방식입니다. 이런 ..
[매일메일] PRG 패턴에 대해서 설명해 주세요.
·
CS
해당 글은 매일메일 서비스를 이용하면서 받은 질문에 대한 공부 내용을 적은 글입니다.만약 잘못된 내용이 있으면 댓글로 남겨주세요!https://www.maeil-mail.kr/ 매일메일 - 기술 면접 질문 구독 서비스기술 면접 질문을 매일매일 메일로 보내드릴게요!www.maeil-mail.kr PRG 패턴이란PRG 패턴은 HTTP 메소드 중 POST의 응답이 GET 요청을 위한 URI로 리다이렉트 되는 것을 의미합니다.이러한 패턴을 도입하는 이유는 멱등성과 관계가 있습니다. 멱등성이란 동일한 작업을 여러번 수행해도 그 결과가 달라지지 않는 것을 의미합니다. 이때 HTTP 메서드가 멱등성을 가진다는 것은 해당 메서드의 요청을 여러번 반복해도 서버의 상태가 한번 실행한 결과와 동일한 상태를 유지한다는 것을 ..