본문 바로가기

취업

Class VS Object VS Instance 현실 세계의 객체(Object)를 소프트웨어에서 클래스(Class)라는 설계도로 표현하고, 클래스를 통해 생성하면 인스턴스(Instance)가 된다 Object 어떤 역할을 하는 주체. 상태와 동작을 가진다. OOP에서는 이를 소프트웨어로 구현하고자 한다. → Class Class Object(객체)를 여러 개 만들기 위한 설계도 field와 method를 가진다. 이를 통해 객체의 상태와 동작을 표현한다. Instance 소프트웨어에서 Class를 통해 생성하여 메모리에 할당하면 인스턴스(Instance)라고 한다. 즉, Object가 실체화되면 Instance라고 하는 것. 실체화할 때 Class를 사용한다. Object는 Class의 Instance 반면, 실행 프로세스는 프로그램의 Instance..
Overriding VS Overloading (오버라이딩 VS 오버로딩) 공통점 둘 다 다형성을 지원하는 방법이다. 이름이 같은 메소드를 상황에 맞춰 다양하게 이용할 수 있도록 하여 다형성을 지원한다. 차이점 Overriding 오버라이딩 부모 클래스로부터 상속받은 메소드를 재정의하는 방법이다. 메소드 이름은 물론 return 타입, parameter 타입, 개수, 순서가 모두 동일해야 한다. return type이 같다는 것은 자동 캐스팅이 가능한 경우도 포함한다. body 내용만 다를 수 있다. Overloading 오버로딩 같은 이름의 메소드/생성자를 한 클래스 내에서 여러 방법으로 사용할 수 있게 하는 방법이다. parameter 타입이나 개수 혹은 둘 다 달라야 한다. return 타입은 같아도, 같지 않아도 상관 없다.
node.js의 특징 node.js의 등장 배경 = 기존 서버의 한계 기존 서버 스레드 기반의 동기 방식 일이 많아지면 스레드를 계속 만들어야 하기 때문에 메모리 사용량이 폭발적으로 증가하고, 서버가 다운될 위험성이 커진다. node.js로 만든 서버 비동기 방식으로 처리하기 때문에 단일 스레드로도 굉장히 빠르게 처리할 수 있다 이벤트 메커니즘으로, 서버가 멈추지 않고 반응할 수 있게 해준다. -> 높은 확장성 node.js의 특징 비동기 I/O 처리 → non blocking API가 실행되었을 때 그 반환 결과를 기다리지 않고 다음 API 실행. 이전 API가 완료되면 node.js의 이벤트 알림 메커니즘을 통해 결과값을 받아옴. 빠른 속도 구글 크롬의 V8 Javascript Engine을 사용하여 빠른 코드 실행 제공..
2019년 하반기 LINE PLUS (라인 플러스) 공채 면접 후기 떨어질거라 생각했던 코딩테스트에 덜컥 붙고, 떨어질거라 생각했던 필기테스트에 덜컥 붙고, 1차 면접은 떨어졌습니다. 네. 이것은 탈락 후기입니다. 합격 후기를 찾으셨다면 죄송합니다. 이 글이 올라갈 수 있을지 모르지만.. 어제 (19.10.23) 불합격 소식을 받고 충격에서 스스로 헤어나오지 못하는 것 같아서 정리할 겸, 또 저와 같은 실수를 다른 분들이 하지 않길 바라며 글을 씁니다. 그냥 구현과 아웃풋 내기에만 급급해 했던 프로젝트나 근무 경력은 적지 마세요. 왜냐, 예를 들어 이런 상황에도 답할 수 있어야 합니다. 나 : 이 툴의 이런 기능을 활용해서 개발했어요. 면접관 : 그 기능이 구체적으로 어떤 기술을 써서 만들어진건데요? 자세히 설명 ㄱ 나 : ... 이런 식인데.. 진짜 상상하지 못한 데서..
객체지향 / 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 - [취업/준비] - 그래서 동기화 문제를 어떻게 해결할건데?