본문 바로가기

개발자 면접준비

(7)
[취업코칭] 취업코칭 진행 후 받은 피드백 [ 질문 list ] 1. 간단하게 자기소개 해주세요. 2. ktds에서 근무하셨다고 했는데 정확하게 어떤 업무를 맡아 진행하신 건지 3. 중간에 직종 변경을 하셨는데 그 이유와 다시 개발자를 선택하게 된 이유가 무엇인지? 4. 왜 백엔드 개발자를 선택하게 되었는지? 5. 가장 기억에 남는 프로젝트와 맡았던 프로젝트에서 어떤 업무를 담당했는지 6. 프로젝트에서 사용하신 redis에 대해서 설명해주시고 redis를 사용한 이유와 이점에 대해서 설명해주세요. 7. redis말고 해당 기능을 어떻게 구현할 수 있는지 8. 프로젝트를 진행하면서 가장 어려웠던 점과 이유에 대해서 설명해주세요. 9. 프로젝트 구현 시 가장 어렵게 느껴졌던 기술에 대해서 설명해주세요. 10. 프로젝트 진행하면서 어려운 점이 생겼을 ..
[Daily] 4월 3일 데일리 과제 Q. 트랜잭션이 무엇인지 설명해 주세요. A. 트랜잭션이란 데이터베이스 관리 시스템(DBMS)에서 수행되는 작업 단위를 의미합니다. 트랜잭션은 하나 이상의 쿼리나 명령문들을 묶어서 하나의 작업으로 처리하는 것을 말하며, 데이터베이스의 상태를 변화시키는 연산들의 논리적 단위입니다. 트랜잭션은 ACID라는 속성을 갖습니다. 원자성(Atomicity): 하나의 트랜잭션은 모든 작업이 완료되거나 모두 취소되어야 합니다. 즉, 중간에 어떠한 문제가 발생하더라도 롤백(undo)하여 이전 상태로 복구할 수 있어야 합니다. 일관성(Consistency): 트랜잭션의 수행 결과는 항상 일관성 있는 상태를 유지해야 합니다. 데이터베이스의 제약 조건과 일치하고, 트랜잭션 이전과 이후의 상태가 일관되어야 합니다. 고립성(Is..
[Daily] 3월 31일 데일리 과제 Q. 프로세스와 스레드의 차이에 대해 설명해 주세요 A. 프로세스(Process)와 스레드(Thread)는 컴퓨터에서 실행되는 여러 작업들을 관리하기 위한 용어입니다. 프로세스는 운영체제로부터 자원을 할당받아 실행 중인 프로그램의 인스턴스를 의미합니다. 즉, 프로그램을 실행하기 위한 메모리, CPU 시간, 파일, 네트워크 연결 등의 시스템 자원을 할당받고, 각각 독립된 메모리 영역을 가지고 실행됩니다. 프로세스는 다른 프로세스와 독립적으로 실행되며, 프로세스 간 통신(IPC)을 통해 서로 통신할 수 있습니다. 반면에 스레드는 프로세스 안에서 실행되는 작은 실행 단위를 의미합니다. 즉, 스레드는 프로세스 내에서 동시에 실행되는 작업 단위입니다. 스레드는 부모 프로세스의 자원을 공유하며, 프로세스 내에서 다..
[Daily] 3월 30일 데일리 과제 Q. List, Set, Map, HashMap의 차이에 대해서 설명해주세요. A. 네개의 타입 모두 컬렉션 프레임워크에 속하는 인터페이스와 클래스입니다. 첫번째 List부터 말씀드리자면 List는 순서가 있는 데이터의 집합으로 데이터의 중복을 허용합니다. List는 인덱스를 사용하여 요소에 접근할 수 있으며 List의 종류에는 ArrayList, LinkedList, Vector등이 List 인터페이스를 구현합니다. 두번째로 Set에 대해서 말씀드리자면, Set은 순서가 없는 데이터의 집합으로서 데이터의 중복을 허용하지 않습니다. Set은 값의 존재 유무를 판별하기 위해 equals()와 hashCode() 메서드를 사용합니다. Set의 종류로는 HashSet과 TreeSet등이 Set의 인터페이스를 ..
[Daily] 3월 29일 데일리 과제 Q. MSA(Microservice Architecture)란? A. 소프트웨어를 작은 독립적인 단위인 "마이크로 서비스"로 분할하는 아키텍처 스타일입니다. 마이크로 서비스는 자체 데이터 저장소, 비즈니스 로직 및 인터페이스를 가지며, 독립적으로 배포 될 수 있습니다. 이는 더욱 높은 확장성과 유연성을 제공하며, 애플리케이션의 일부가 많은 부하를 처리하는 경우 해당 마이크로 서비스만 수평적으로 확장시킬 수 있습니다. 따라서 마이크로 서비스 아키텍처는 애플리케이션의 유지 보수성과 확장성을 향상 시킬 수 있고 개발자들은 자신이 담당하는 서비스에 집중할 수 있으므로 빠른 개발 및 배포가 가능합니다. 그러나 아키텍처를 구현하는 것은 매우 복잡하고 서비스 간의 통신과 일관된 데이터 관리등의 극복해야하는 과정이 따..
[Daily] 3월 28일 데일리 과제 Q. DI(Dependency Injection)에 대한 설명과 해당 기술의 장점에 대해 설명해주세요. A. 의존성 주입은 객체 지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 객체 간의 결합도를 낮추어 유지보수성과 확장성을 높일 수 있습니다. 의존성 주입은 크게 3가지 방식으로 구현할 수 있습니다. 첫 번째는 생성자를 이용한 방식으로, 생성자를 통해 의존하는 객체를 주입하는 방식입니다. 두 번째는 setter 메소드를 이용한 방식으로, setter 메소드를 통해 의존하는 객체를 주입하는 방식입니다. 마지막으로는 인터페이스를 이용한 방식으로, 인터페이스를 구현한 클래스를 주입하여 객체 간의 결합도를 낮추는 방식입니다. Q. DB에서 인덱스를 잘 사용하면 어떤 장점이 있을까요? A. 첫번째 이점은 검..
[Daily] 3월 27일 데일리 과제 Q. 객체지향 프로그래밍(OOP)에 대해 설명해주세요. (알고있는 원칙이나 키워드를 언급해주세요) A.프로그래밍 패러다임 중에 하나로, 현실 세계의 개념들을 프로그래밍에 반영하여 코드의 재사용성과 유지보수성, 확장성 등을 개선하고자 하는 목적을 가지고 있습니다. OOP에서는 프로그램을 객체 단위로 분해하여 각 객체가 데이터와 메서드를 포함하는 캡슐화된 독립적인 개체로서 작동합니다. 객체는 클래스를 통해 정의되며, 클래스는 객체를 생성하기 위한 템플릿으로서 객체의 공통적인 속성과 동작을 정의합니다. 그러나 OOP는 코드의 재사용성과 유지보수성을 높이는 장점이 있기는 하지만 객체 간의 상호작용이 많아 질 수록 복잡도가 증가 할 수 있습니다. 따라서 적절한 객체 설계와 디자인 패턴의 적용이 반드시 필요하다고 ..