2023/12 7

🧾면접 최종 정리(Java, Spring, DB, OS, 네트워크, 자료구조)

스프링: 자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크로 , pojo 기반 - plain old java object , DI- defendency injection 의존성 주입, aop -관점 지향 프로그래밍 을 지원하는 컨테이너를 제공하는 프레임워크 제어의 역전 Ioc(Inversion of Control) - 디자인 원칙 중 하나로 객체의 생성부터 생명주기의 까지 모든 객체에 대한 제어권이 바뀐것을 의미 - 클래스 간 결합도를 줄이기 위해 -결합도는 왜 줄이는가? 결합도는 구성 요소 간의 의존성 정도를 나타내는데 높은 결합도는 시스템을 유지보수하거나 확장하기 어렵게 만들기 때문에 DI(Dependency injection) 의존성 주입 - 디자인 패턴 중 하나 의존 객체를 직접 생성하는 것이 ..

🧾스프링

스프링은 자바 기반의 엔터프라이즈급 애플리케이션을 개발하기 위한 종합적인 프레임워크입니다. 스프링은 모듈화가 잘 되어 있어 필요한 모듈만 선택하여 사용할 수 있습니다. 주요 모듈에는 Spring MVC(웹 애플리케이션 개발), Spring ORM(객체 관계 매핑), Spring JDBC(데이터베이스 액세스), Spring AOP(관점 지향 프로그래밍) 등이 있습니다. 설정이 XML 기반이며, 개발자가 많은 구성을 수동으로 처리해야 합니다. Spring MVC (웹 애플리케이션 개발): 목적: 웹 애플리케이션을 개발하기 위한 모듈입니다. 특징: MVC 아키텍처를 기반으로 한다. 모델(Model), 뷰(View), 컨트롤러(Controller)의 분리를 통해 애플리케이션을 구조화한다. 모델은 데이터를 나타내..

🧾리액트 정리

리액트는 컴포넌트 기반 아키텍처를 기반으로, 각 컴포넌트는 스테이트를 가질 수 있고, 재사용 가능 가상 DOM 사용 성능 최적화 리덕스는 특히 상태 관리가 복잡한 대규모 애플리케이션 또는 여러 컴포넌트 간에 상태를 공유해야 하는 경우에 유용합니다. 전역 상태를 하나의 객체로 관리 -> 쉽게 관리 가능 예측 가능 컴포넌트 간 데이터 공유-> 리액트는 부모-자식 관계가 아닌 컴포넌트 간 상태 공유가 어려운데 리덕스 사용시 동일한 상태 트리 공유로 데이터 쉽게 전달 공유 상태 로직 추상화하여 관리 가능 유지보수성 향상 브라우저 라우터: 클라이언트 측 라우팅 처리하는 도구, 다른 경로로 이동시 페이지 새로고침이 필요없다

면접대비 java

자바(Java) OOP란 객체지향 프로그래밍이란 인간 중심적 프로그래밍 패러다임이라고 할 수 있습니다. 즉, 현실 세계를 프로그래밍으로 옮겨와 프로그래밍하는 것을 말합니다. 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는 것입니다. 대표적인 특징으로 추상화, 상속, 캡슐화, 다형성이 있습니다. 객체 지향적 설계 원칙의 종류 SRP(Single Responsibility Principle) : 단일 책임 원칙 클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 합니다. OCP(Open-Closed Principle) : 개방-폐쇄 원칙 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 합니다. LSP(L..

🧾 HTTP VS HTTPS

HTTP 의 문제점 HTTP 는 평문 통신이기 때문에 도청이 가능하다. 통신 상대를 확인하지 않기 때문에 위장이 가능하다. 완전성을 증명할 수 없기 때문에 변조가 가능하다. 위 세 가지는 다른 암호화하지 않은 프로토콜에도 공통되는 문제점들이다. TCP/IP 는 도청 가능한 네트워크이다. TCP/IP 구조의 통신은 전부 통신 경로 상에서 엿볼 수 있다. 패킷을 수집하는 것만으로 도청할 수 있다. 평문으로 통신을 할 경우 메시지의 의미를 파악할 수 있기 때문에 암호화하여 통신해야 한다. 보완 방법 통신 자체를 암호화 SSL(Secure Socket Layer) or TLS(Transport Layer Security)라는 다른 프로토콜을 조합함으로써 HTTP 의 통신 내용을 암호화할 수 있다. SSL 을 조..

🧾면접 대비

RDB와 NoSQL의 차이 RDBMS는 정해진 스키마가 존재하고, NoSQL는 정해진 스키마가 없다는 것이 가장 큰 차이입니다. NoSQL은 정해진 스키마가 없을 때 데이터 구조 변화가 자유롭고 데이터 분산이 용이하다는 장점이 있지만, 데이터 중복이 발생하거나 데이터 변경 시에 연산이 오래 걸린다는 단점이 있습니다. DB에서 인덱스를 잘 사용 했을 때의 장점 DB의 인덱스를 잘 사용하는 것은 데이터를 검색하는 시점에 성능 차이에 큰 영향을 미칩니다. 대용량 데이터를 담고 있는 DB 테이블에서 필요한 데이터를 빨리 찾기 위해 인덱스가 필요합니다. 인덱스가 없거나 적절한 인덱스를 찾지 못할 경우 데이터가 담겨있는 테이블 전체를 읽어야 하기에 데이터 조회 시간이 오래 걸립니다. 인덱스는 DB 데이터의 주소를 ..