Back-end 개발자라면 답변가능한 Questions

2019.02.11 15:42개발이야기



OS, Linux, Network

# 프로세스와 쓰레드 차이

프로세스 - 실행되고 있는 프로그램의 개체. CPU 시간이나 메모리 등 시스템 장원이 할당되는 독립적인 개체. 다른 프로세스와 상관 없이 독립적으로 자원을 할당 받음. 프로세스 간의 통신을 위해선 파이프, 파일, 소켓 등을 사용하여 통신하여야 함 

쓰레드 - 프로세스 안에 존재하여, 프로세스의 자원을 공유하는 개체 흔히 경량 프로세스라고 부름 각 쓰레드는 별도의 레지스터와 스택을 갖고, 힙 영역은 공유.


# System call이란?



# Shared memory?


# 해쉬알고리즘의 종류 및 특징?

MD5 SHA-1


# Swap memory는 무엇이고 언제발생하는가?


# Java에서 Memory mapped file은 언제 사용하는가?


# OSI 7 layer


# Http연결시 세션과 쿠키 차이점


# Http의 Keep alive 개념?


# Get, Post 차이점


# TCP vs UDP


# L7 switch란?


Java Programming

# Java 8, 9, 10 차이점 설명

# Java에서 Integer는 몇바이트인가?

# Collection package들 설명

# Call by value, call by reference 차이 및 Java에서 동작방식


# Overload와 override차이

오버로딩 - 똑같은 함수에 매개변수를 변경하여 선언하는 법

오버라이딩 - 부모 클래스로 부터 상속 받은 메소드의 내부 구현 로직을 변경하는 방법


# Hashtable, hashmap 차이


# ArrayList, LinkedList 차이


# JVM GC 종류 및 원리


# Java NIO(new io)?


# Java refrection?


# servlet?


# Singleton패턴이 무었이고 어떨때 사용가능한가?


# Threadsafe란?


# mutex와 semaphore 차이?

프로세스 혹은 쓰레드 간의 통신 시에 shared memory 등을 쓰는 경우 하나의 자원에 두 개 이상의 프로세스 혹은 쓰레드가 접근하는 경우에 문제가 발생. 이를 제어하기 위해 쓰레드에서는 뮤텍스를 사용하며, 프로세스에서는 세마포어를 사용 함 

뮤텍스 - 상호배제라고도 하며, Critical Section을 가진 스레드의 Running time이 서로 겹치지 않도록 각각 단독으로 실행하게 하는 기술 synchronized 또는 lock을 통해 해결 

세마포어 - 리소스 상태를 나타내는 간단한 카운터 공유 리소스에 접근할 수 있는 프로세스의 최대 허용치만큼 동시에 사용자가 접근하여 사용할 수 있음.


# Spring boot란? 왜 쓰는가?


# ORM이란?


# Design pattern아는 것 나열 및 설명


# String, StringBuffer, StringBuilder 차이


# Java에서 int와 long차이


# Gradle vs Maven



DevOps

# Kubernetes란?

# Container의 종류 및 써야하는 이유?

# Jenkins란?

# 무중단 배포를 위한 방법?

# 마이크로 서비스 아키텍쳐란 무었인가?

BigData

# Hadoop의 특징 및 장단점

# Kafka의 특징 및 장단점

# 각종 Queue application의 차이 설명

# MapReduce설명

# 샤딩과 파티션 차이