Programming

상속을 사용하는 이유는 무엇일까? 💡 상속을 사용하는 이유 공통적인 부분을 가지고 있는 상위 클래스를 활용해 하위 클래스는 본인 고유의 상태와 행동을 정의하기 위함 코드의 확장성, 재사용성이 용이하고 중복된 코드를 상위 클래스로 빼기 때문에 코드가 간결해짐 결과적으로 유지보수가 쉬워짐 💡 이해를 돕기 위한 예시 여러분 예를들어 자동차, 기차, 선박, 항공기, 우주선 클래스를 정의한다고 가정해봅시다. 이들의 공통점은 운반의 수단이 된다는 것입니다. 그럼 이제 항공기와 열차를 각 각 클래스 별로 정의해봅시다. ✔️ 항공기 탑승인원, 짐의 무게, 승무원의 인원 등 👉 멤버 변수 탑승하는 메서드, 짐싣는 메서드, 승무원의 탑승 등 👉 멤버 메서드 ✔️ 열차 탑승인원, 짐의 무게, 열차의 칸 수 등 👉 멤버 변수..
자바스크립트 - 페이지 로딩시 함수 호출 1. body 태그에 onload 2. window onload window.onload = 함수; 💡 onload 와 ready의 차이점 window.onload 같은 경우는 전체 페이지에 모든 외부 리소스나 이미지가 전부 불러와진 이후에 작동을 하게 된다. 해당 외부 리소스나 이미지의 양이 커 딜레이가 생길 때에는 그만큼의 시간을 기다렸다가 작동을 하게 되는 문제가 있다. 또한 외부 링크나 파일을 include했을 때 그 안에 window.onload가 중복되어 존재하게 된다면 둘 중 하나만 적용되는 큰 문제와 위 예제와 같이 body에서 사용하는 onload를 사용하게 된다면 모든 window.onload가 작동하지 않는 현상이 일어난다. 📌 이러한 문제를 ..
[Linux] 리눅스 find 명령어 사용법 Linux의 find는 파일 및 디렉토리를 검색할 때 사용하는 명령어입니다. 이름 그대로 리눅스에서 접근할 수 있는 파일 시스템에서 파일 및 디렉토리를 찾는(find) 명령어입니다. 이 find를 여러 옵션을 사용해 파일 및 디렉토리를 검색하는 방법에 대해 알아보겠습니다. ✔️ find 개념 find 는 파일이나 디렉토리를 찾는 명령어다. 현재 디렉토리(.) 기준 이름, 크기, 종류, 생성일 등 다양한 조건으로 검색할 수 있으며 검색 결과는 유닉스의 장점인 pipe를 이용하여 다른 프로그램에서 처리할 수 있다. ✔️ find 명령어 옵션 find 명령어에는 몇 가지 옵션과 많은 수의 표현식(Expression)이 존재합니다. 일반적인 리눅스의 명령어와는 조금 ..
Dispatcher Servlet 이란? Dispatcher Servlet에서 dispatch는 "보내다" 라는 사전적 의미를 가지고 있습니다. 본격적으로 Dispatcher Servlet에 대해 설명하기 앞서 FrontController 패턴의 개념을 살펴보고 가겠습니다. 1. FrontController 패턴 이란? 우리는 사용자의 요청을 Servlet에게 전달하기 위해 web.xml 에 servlet을 등록하고 mapping하는 과정이 필요합니다. 하지만 수 많은 요청이 필요한 경우 계속해서 이 작업을 필요로 하기 때문에 이 점을 해소하고자 FrontController 패턴이 생겨났습니다. Front Controller 패턴 Front Controller는 주로 서블릿 컨테이너의 제일 앞에서 서버로..
우리가 알고있는 일반적인 큐(Queue)는 FIFO(First In - First Out) 구조입니다. 즉, 어떤 부가적인 조건 없이 먼저 들어온 데이터가 먼저 나가는 구조였습니다. 1. 우선순위 큐 - Priority Queue 1.1 우선순위 큐 (Priority Queue)란? 우선순위 큐(Priority Queue)는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 구조입니다. 우선순위 큐는 힙(Heap)이라는 자료구조를 가지고 구현할 수 있습니다. 일상적인 예를 들자면, 제일 응급한 환자부터 치료하는 병원의 응급실이라고 할 수 있습니다. 즉, 우선순위가 가장 높은 환자부터 먼저 치료를 하는 것입니다. 1.2 우선순위 큐를 구현하는 방법 1.2.1 구현 방법 종류 1. 배열(Array..
목차 Controller와 RestController의 차이점 Spring MVC의 Work Flow @RestController 개념 및 예제 ResponseEntity 개념 및 예제 일반적인 API는 반환하는 리소스에 Value값만 있지 않습니다. 상태코드, 상태 메시지 등등 데이터들이 있는데 이러한 Data를 return하는 것을 주용도로 사용하는 것이 ResponseEntity 클래스 입니다. 먼저 ResponseEntity를 배우기 전에 Controller와 RestController의 차이점을 알아보겠습니다. 1. Controller와 RestController의 차이점 - Spring MVC Controller와 Restful Controller의 가장 큰 차이점은 HTTP Response ..
IoC 그리고 DL 과 DI IoC의 이해 IoC(Inversion of Control) 이란? "제어의 역전" 이라는 의미로, 메서드나 객체의 호출을 개발자가 결정하는 것이 아닌, 외부에서 결정되는 것을 의미한다. 간단히 말해 "제어의 흐름을 바꾼다" 라고 한다. Ioc의 장점 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다. IoC의 컨테이너 스프링 프레임워크도 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있다. 이때, IoC 컨테이너가 기능을 제공한다. 기존에는 다음과 같은 순서로 객체가 생성되고 실행되었다. 객체 생성 의존성 객체 생성 - 클래스 내부에서 생성 의존성 객체 메서드..
JavaScript 반복문(for 문) forEach, for...of 유형 사용법 및 예제 자바스크립트에서 기본 for문 이외에 forEach 방식과 for...of 방식에 대해서 설명하겠습니다. 지금까지 사용해왔던 for문은 아래 예제처럼 사용했습니다. var arr = [1, 2, 3, 4, 5]; for(var i=0; i { console.log(val); }); for...of 사용법 ✔️이번엔 새로운 반복문 처리 방법인 for...of 사용 방법입니다. var arr = [1, 2, 3, 4 ,5]; for(var val of arr) { console.log(val); } 생각보다 간단하죠? 👉 이터레이터(Iterator) 방식으로 요소를 하나씩 꺼내서 처리하는 방식입니다. 감사합니다.