본문 바로가기

분류 전체보기

Overriding VS Overloading (오버라이딩 VS 오버로딩) 공통점 둘 다 다형성을 지원하는 방법이다. 이름이 같은 메소드를 상황에 맞춰 다양하게 이용할 수 있도록 하여 다형성을 지원한다. 차이점 Overriding 오버라이딩 부모 클래스로부터 상속받은 메소드를 재정의하는 방법이다. 메소드 이름은 물론 return 타입, parameter 타입, 개수, 순서가 모두 동일해야 한다. return type이 같다는 것은 자동 캐스팅이 가능한 경우도 포함한다. body 내용만 다를 수 있다. Overloading 오버로딩 같은 이름의 메소드/생성자를 한 클래스 내에서 여러 방법으로 사용할 수 있게 하는 방법이다. parameter 타입이나 개수 혹은 둘 다 달라야 한다. return 타입은 같아도, 같지 않아도 상관 없다.
[데이터베이스] 격리성 관련 문제와 격리성 수준 (Isolation Level) 격리성 관련 문제점 1. Dirty Read 한 트랜잭션(T1)이 데이터에 접근하여 값을 'A'에서 'B'로 변경했고 아직 커밋을 하지 않았을때, 다른 트랜잭션(T2)이 해당 데이터를 Read 하면? T2가 읽은 데이터는 B가 될 것이다. 하지만 T1이 최종 커밋을 하지 않고 종료된다면, T2가 가진 데이터는 꼬이게 된다. 트랜잭션이 rollback했는데, 다른 트랜잭션이 rollback 이전에 수정되었던 데이터를 갖고 있어서 문제가 되는 경우 2. Non-Repeatable Read 한 트랜잭션(T1)이 데이터를 Read 하고 있다. 이때 다른 트랜잭션(T2)가 데이터에 접근하여 값을 변경 또는, 데이터를 삭제하고 커밋을 때려버리면? 그 후 T1이 다시 해당 데이터를 Read하고자 하면 변경된 데이타 ..
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 - [취업/준비] - 그래서 동기화 문제를 어떻게 해결할건데?
[scala] 스칼라의 특징 확장가능한 언어 scalable이란 단어에서 scala가 유래되었듯, 확장 가능하다 대규모 프로그램에 잘 맞음 객체 지향 (object-oriented) class로 객체의 타입을 정의 trait로 객체의 동작을 정의 trait는 자바에서의 인터페이스와 비슷 다중 상속도 간접적으로 지원 서브클래싱과 믹싱 기반의 composition을 사용하면 가능 함수형 익명함수, 고차함수, 중첩함수 지원 및 허용 중첩함수 자바와 다르게 클래스 내부에서 함수를 정의할 수 있고, 해당 함수에 대한 외부 접근은 금지됨 불변방식+간결한 표현 → 동기화&동시성으로 쉽게 병렬처리 가능 => 이 때문에 스파크에 알맞음. 정적 타입 추적 지원 인터프리터 방식으로도 실행할 수 있지만, 스칼라는 기본적으로 컴파일언어. 컴파일 언어는 컴..