본문 바로가기

취업/준비

객체지향 / OOP에 대해 설명해보세요 대부분 객체지향 / OOP에 대한 질문을 (준비 없이) 받게 되면 '객체마다 어떤 역할을 부여하고.. 다형성과.. 캡슐화를 통해.. 샬라샬라..' 이렇게 답할테지만, 좀 더 정리해보자. 객체지향의 원칙 : SOLID 좋은 객체지향이 뭐라고 생각하냐는 질문에 답하기 좋은 SOLID 원칙을 소개한다. 이 원칙을 잘 지키면 코드의 재사용성과 유지보수성을 키울 수 있다. 그리고 이 원칙을 잘 지키는 각종 디자인 패턴, 소프트웨어 개발론들이 등장하고 있으니 소프트웨어공학에서의 필수 지식이라고 할 수 있다. 단일책임원칙 Single responsibility principle 클래스는 단 하나의 책임을 가져야 한다. = 클래스를 변경하는 이유가 단 한 개여야 한다. 클래스 안에 여러 책임이 있으면 수정이 잦아진다...
[IT면접] 그래서 동기화 문제를 어떻게 해결할건데? 이전 글 : 2019/10/24 - [취업/준비] - 프로세스 VS 스레드 (메모리 상의 차이) 프로세스 VS 스레드 (메모리 상의 차이) 사실 아래 그림들로도 대부분의 의문은 해결된다. 프로세스 레지스터, 스택, 힙, 전역변수, 코드, 데이터 영역을 갖는다. 스레드 레지스터, 스택 공간은 스레드마다 별도로 갖지만 힙, 전역변수, 코드, 데이터 영.. j-i-y-u.tistory.com 면접에서 정말 잘 다루는 문제다. 프로세스와 스레드의 차이 + 동기화 문제 해결 세트로다가. 면접 보다보면 만날 확률 100% 학문적으로(?) 이야기하자면 세마포어 Semaphore, 뮤텍스 Mutex 등을 이용해서 해결할 수 있다. 이에 대한 설명은 어딜 가나 많으니 논외로 하고, 잠깐 생각해보자. 아니.. 이렇고 저렇..
프로세스 VS 스레드 (메모리 상의 차이) 사실 아래 그림들로도 대부분의 의문은 해결된다. 프로세스 레지스터, 스택, 힙, 전역변수, 코드, 데이터 영역을 갖는다. 스레드 레지스터, 스택 공간은 스레드마다 별도로 갖지만 힙, 전역변수, 코드, 데이터 영역은 프로세스 안에서 공유한다. 스레드에서 힙, 전역변수, 코드, 데이터 영역은 공유하기 때문에 동기화 문제에 대한 처리를 잘 해주어야 한다. 동기화 문제를 해결하기 위해 세마포어나 뮤텍스로만 접근해야할까? 궁금하면 아래 글을 보자. 2019/10/24 - [취업/준비] - 그래서 동기화 문제를 어떻게 해결할건데?