리뷰노트
-
[Java]짧게 훑어보는 Java 간단 지식(오버라이딩&오버로딩, 추상클래스, 인터페이스, SOLID-객체지향의 설계원칙)리뷰노트/Java 2023. 11. 29. 13:01
오버라이딩(Overriding) & 오버로딩(Overloading) 오버라이딩(Overriding)은 상위 클래스에 있는 메소드를 하위 클래스에서 재정의 하는 것입니다. 오버로딩(Overloading)은 매개변수의 타입이나 개수를 다르게 하여 같은 이름의 메소드를 여러 개 정의하는 것입니다. 추상클래스(Abstract Class) & 인터페이스(Interface) 추상클래스(Abstract Class) 클래스 내에 추상 메소드가 하나 이상 포함되거나 abstract로 정의된 경우를 말합니다. 상속받는 클래스들의 공통적인 로직을 추상화 시키고 기능 확장을 위해 사용합니다. 다중상속이 불가능하지만 인터페이스는 다중상속이 가능합니다. 인터페이스(Interface) 모든 메소드가 추상 메소드로만 이루어져 있는 ..
-
[네트워크]간단한 TCP/IP 4계층 설명리뷰노트/네트워크 2023. 11. 26. 20:16
TCP/IP 4계층 모델 인터넷 프로토콜 스위트(internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이며 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7 계층 모델로 설명하기도 합니다. TCP/IP 4계층 모델에 대해서 적어볼까 합니다. 이 계층 모델은 네트워크에서 사용되는 통신 프로토콜의 집합으로 계층들은 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성됩니다. 계층 구조 애플리케이션(Application) 계층 FTP : 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜 HTTP : World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜 SSH : 보안되지 않은 네..
-
[네트워크]네트워크의 기초(처리량, 지연 시간, 네트워크 토폴로지, 병목현상)리뷰노트/네트워크 2023. 11. 24. 23:48
네트워크는 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어입니다. 네트워크란? 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미합니다. 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미합니다. 처리량과 지연 시간 좋은 네트워크란? - 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크를 말합니다. 처리량은 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타냅니다. '많은 트래픽을 처리한다.' == '많은 처리량을 가진다' 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하..
-
[기술면접리뷰]개발자 면접(기술면접, 기술 외 질문)리뷰노트/기술면접 2023. 11. 23. 18:00
기술면접때 들어본 질문들 정리 기술면접 Spring WebFlux 란? Spring Framework 5에서 도입된 반응형 프로그래밍을 위한 모듈입니다. 비동기적이고 논블로킹 방식으로 서버 사이드 애플리케이션을 개발할 수 있게 해주며, 더 많은 요청을 더 효율적으로 처리할 수 있도록 설계되었습니다. WebFlux는 Spring의 기존 어노테이션 기반 프로그래밍 모듈과 함수형 스타일의 프로그래밍 모델을 모두 지원합니다. [꼬리질문]리액티브 프로그래밍이란? 비동기 데이터 흐름과 변경의 전파에 중점을 두는 프로그래밍 패러다임입니다. 이는 데이터 스트림과 그 데이터에 의해 발생하는 변화를 쉽게 표현하고 관리할 수 있도록 합니다. 리액티브 프로그래밍은 시스템이 보다 탄력적이고 반응성이 뛰어나며 유지 관리가 용이하..
-
[Java]짧게 훑어보는 Java 간단 지식(Java란, 컴파일 과정, JVM, GC, 메모리 영역)리뷰노트/Java 2023. 11. 21. 20:39
*제목 그대로 Java의 기본적인 지식을 짧게 되새김 할려고 합니다. Java 란 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어입니다. JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이라는 장점을 갖고있습니다. (반대로 JVM 위에서 동작하기 때문에 실행속도가 상대적으로 느리다는 단점을 가지고 있습니다.) GC(Garbage Collector)를 통한 자동적인 메모리 관리가 가능합니다. 다중 상속이나 타입에 엄격하며 제약이 많습니다. Java 컴파일 과정 개발자가 .java 파일을 생성 후 build 를 합니다. 그러면 Java compiler의 javac 명령어를 통해 .class 파일(b..
-
REST API 란 REST API & RESTful API리뷰노트/Server 2023. 11. 15. 00:20
REST API 란 REpresentational State Transfer 의 약자이고, 자원을 이름으로 구분해 자원의 정보를 주고 받는 모든 것 입니다. 자원(Resource)의 표현(Representation)에 의한 상태 전달을 뜻합니다. 여기서 자원은 해당 소프트웨어가 관리하는 모든 것 (문서, 그림, 데이터, 해당 소프트웨어 자체 등) 표현은 그 자원을 표현하기 위한 이름이고 상태 전달은 데이터가 요청되는 시점에 자원의 상태를 전달합니다. 가장 큰 특징은 각 요청이 어떤 동작이나 정보를 위한 것인지 추론이 가능한 것 입니다. 디자인 시 가장 중요한 것은 URI는 정보의 자원을 표현해야 한다. 자원에 대한 행위는 HTTP Method (GET, POST, PATCH, DELETE)로 표현해야한다..
-
[Spring] Spring MVC 흐름리뷰노트/Spring 2023. 10. 22. 23:58
Spring MVC는 클라이언트의 요청을 편리하게 처리해주는 프레임워 입니다. (Spring Web MVC 를 주로 Spring MVC로 부릅니다.) MVC 는 Model, View, Controller 의 약자 Model : 데이터 관리 및 비즈니스 로직을 처리하는 부분이고 (DAO, DTO, Service ..) View : 비즈니스 로직의 처리 결과를 통해 유저 인터페이스가 표현되는 구간이고 (html, jsp, tymeleaf, mustache .. 등) Controller : 사용자의 요청을 처리하고 Model과 View를 중개하는 역할을 합니다. 구성요소 DispatcherServlet : Client 에게 요청을 받아 응답까지의 MVC 처리과정을 통제한다. (다른 구성요소..
-
[JAVA] interface(인터페이스) 와 abstract class(추상클래스)리뷰노트/Java 2023. 1. 31. 22:47
자바 공부를 하면 언제나 필수적이고 면접 질문으로 자주 나오는 인터페이스와 추상클래스의 대해서 적어보겠습니다. 추상클래스 abstract로 선언된 추상 클래스는 상속을 위한 클래스기 때문에 객체를 생성할 수 없고 상속을 통해 자식 클래스에서 만들어지도록 유도하는 미완성 설계도 라고 할 수 있습니다. 또한, 다중 상속을 지원하지 않기 때문에 여러 개의 추상 클래스를 상속 할 수 없습니다. abstract class 추상클래스이름 { public abstract void 추상메소드이름1(); public abstract void 추상메소드이름2(); ''' } 추상메소드 : 선언부에서 작성되어지고 구현부에서는 작성되지 않은 채로 남겨두는 것이고 상속받는 클래스에 따라서 구현 되는 내용이 달라질 수 있습니다...