CS 면접 준비 17

DI와 IoC 란?

Spring 하면 떠오르는 두 개념을 알아보겠다.💡DI( Dependency Injection )→ 객체지향프로그래밍에서 중요한 디자인 패턴 중에 하나로, 외부에서 두 객체 간의 관계를 결정해 준다.→ 클래스 간에 의존관계를 없애 유연성을 확보하고 결합도를 낮춘다.예를 들어, 바리스타가 있다고 하자. (바리스타는 다양한 커피머신을 사용한다.)class Barista { private CoffeeMachine coffeeMachine = new AutomaticMachine(); // 직접 생성 public void makeCoffee() { coffeeMachine.makeCoffee(); } }이렇게 바리스타 클래스를 사용하면 자동커피머신에 의존하게 된다...

CS 면접 준비 2025.01.16

프레임워크와 라이브러리 란?

💡프레임워크→ 소프트웨어를 개발할 때, 개발자들이 일정한 구조와 규칙에 따라 쉽고 빠르게 작업할 수 있도록 제공되는 틀(구조)을 말한다.프레임워크 특징애플리케이션 개발에 필요한 기본 구조와 규칙을 제공한다. 예: 파일 구조(폴더와 파일 배치 규칙), 코드 작성 방식, 흐름 처리 등 제어의 흐름은 프레임워크가 담당하며, 개발자는 정해진 규칙에 맞춰 코드를 작성해야 한다.  팀 프로젝트에서 코드의 일관성을 유지하는 데 도움을 준다. 💡라이브러리→ 반복적으로 사용되는 기능을 미리 구현해 놓은 도구의 모음이다.예를 들어, Python에서 numpy, pandas 등이 있고, Java에서는 스캐너, java.io, java.util 등이 있다.라이브러리 특징제어의 흐름은 개발자가 담당한다. 개발 방식이나 구조..

CS 면접 준비 2025.01.14

RDBMS 와 NOSQL 이란?

💡RDBMS( Relational Database Management System )→ 데이터를 행(row)과 열(column)로 구성된 테이블 형태로 저장하고 관리하는 데이터베이스 관리 시스템이다.→ 데이터 간의 관계를 정의하고 유지하기 위해 SQL( Structured Query Language )를 사용한다.✴️RDBMS의 특징정형화된 데이터를 효과적으로 저장하고 처리하는 데 적합하다데이터 무결성과 일관성을 보장하는데 좋다.하지만, 대규모 데이터처리에는 적합하지 않다.RDBMS의 종류ORACLEMySQLMicrosoft SQL ServerPostgreSQL등등 이 있다.💡NoSQL→ 관계형 모델(RDBMS)이 아닌 방식으로 데이터를 저장하고 조회할 수 있도록 설계된 데이터베이스를 통틀어 부른다...

CS 면접 준비 2025.01.14

Query String과 Path Variable 이란?

두 개념의 공통점→ 클라이언트에서 서버로 요청을 보낼 때 데이터를 전달하기 위한 방법이다.그러면 두 개념의 차이점은 무엇일까?💡Query String→ URL에서? 뒤에 오는 내용이다.예를 들어 http://~~~/products?category=electronics&price_min=1000&price_max=5000(전자제품 카테고리 내에 가격이 1000~5000 사이인 제품을 찾는다.) 💡Path Variable→ 경로에 변수를 추가하여 사용하는 것이다.예를 들어 http://~~~/products/101(제품 중에 101번인 제품을 요청한다.) 📌두 개념의 차이점을 생각해 보면path variable은 특정 자원을 직접 조회하기 위해 사용되고query string은 추가 조건들을 붙여 자원을..

CS 면접 준비 2025.01.13

클래스와 인스턴스의 차이

💡클래스란?클래스는 OOP(객체지향프로그래밍)의 핵심개념이다.예를 들어 사람에 대해서 코드를 짜본다고 가정하자.const person = { name: 'jjong0425', age: 25, skills: 'Programmer'};이렇게 한 명의 사람을 만들기는 간단한데 한국만 해도 몇천만 명이 있고 도시에만 있어도 수백만 명이 있다.이렇게 여러사람들을 코드를 짜려고 할 때, 위에 코드처럼 한 명 한 명씩 짜기에는 거의 불가능하다.좋은 방법은 사람이라는 큰 틀을 짜고 데이터를 입력하여 사람을 만들어 나가는 것이 훨씬 쉽고 간단하다.class Person{ name: string; age: number; skills: string;}위에 코드처럼 사람이라는 큰 틀을 작성해 보았다. 이런구조..

CS 면접 준비 2025.01.09

도메인을 브라우저로 접속 할 때, 클라이언트와 서버의 흐름

예를 들어 www.naver.com을 접속한다고 가정하자.첫 번째로, 브라우저는 해당 도메인의 IP주소를 찾아야 한다. (컴퓨터는 도메인이름을 인식하지 못하기 때문이다.)도메인네임에 대응되는 IP주소를 찾기 위해 DNS(Domain Name System)을 이용한다.이 과정은 간단하게 그림으로 표현한 것인데 원래는 DNS서버를 계층화해서 단계적으로 처리한다.(전 세계 도메인 수가 너무 많기 때문이다.)이제 도메인네임에 대응하는 IP주소를 얻었으므로 이제 서버와 클라이언트가 모두 데이터를 전송할 준비가 되어있는지 확인하는 단계가 필요하다.두 번째로, TCP 3-Way-HandShake를 이용해 TCP 연결을 설정한다. TCP 연결을 수립하기 위해서는 3단계 과정이 필요한데 이것을 3-way-handshak..

CS 면접 준비 2025.01.09

OOP(객체지향프로그래밍)의 5원칙

■SRP(Single Responsibility Principle) : 단일 책임 원칙■OCP(Open Closed Priciple) : 개방 폐쇄 원칙■LSP(Listov Substitution Priciple) : 리스코프 치환 원칙■ISP(Interface Segregation Principle) : 인터페이스 분리 원칙■DIP(Dependency Inversion Principle) : 의존 역전 원칙📌SRP(Single Responsibility Principle) - 단일 책임 원칙→ 클래스(객체)는 단 하나의 책임만 가져야 한다는 원칙이다.즉, 하나의 클래스는 하나의 기능을 담당하여 하나의 책임을 수행하는데 집중되도록 클래스를 따로따로 여러 개 설계하라는 원칙이다.예를 들어 기능이 A,B,..

CS 면접 준비 2025.01.08
LIST