Programming
-
프레임워크 vs 라이브러리Programming/TIL 2020. 2. 12. 21:21
자동차는 프레임워크, 망치는 라이브러리 자동차는 특정 목적으로 만들어져서 목적지로 빠르게 갈 수 있는 역할만 하지만, 망치는 두드린다는 행위 하나로 사람을 때릴때도 쓸 수 있고, 못질을 하거나 필요에 따라 사용할 수 있다. 자동차를 가지고 삽질을 할 수 없고 무언가를 두들길 수도 없다. 그저 목적지 까지 빠르게 데려다주는 수단일 뿐이다. 만들어질 때 부터 이러한 용도로 만들어졌기 때문이다. 즉 매뉴얼대로 조작하면 최대의 효율로 목적지까지 데려다 주는 것이 프레임워크이다. 하지만 망치는 용도에 따라 여러가지의 형태로 쓰일 수 있다. 프레임워크는 라이브러리와는 다르게 프로그래밍 규칙이 이미 정해져 있는 것이다. 말그대로 프레임워크는 골격, 라이브러리는 도구 프로그램을 만들기 위해 프레임워크를 토대로 골격에 ..
-
Domain Object, DAO, DTO,Programming/TIL 2020. 2. 12. 21:07
Domain Object 도메인 객체란 내가 개발하고자 하는 영역을 분석하고, 그 분석의 결과로 도출된 객체들을 말한다. 예를 들어, 쇼핑몰을 만든다고 했을 때 쇼핑몰의 주된 기능인 상품 구매에 사용되는 객체인 Member, Product, Purchase 등을 도메인 객체라고 할 수 있다. DAO(Data Access Object) DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체 DB에 대한 접근을 DAO를 통해서만 하도록 만들어 다수의 원격 호출을 통한 오버헤드와 호출 문제를 줄일 수 있다. DTO(Domain Transfer Object) 계층간 데이터 교환을 위한 객체. 일반적인 DTO는 로직을 갖고 있지 않다. 순수한 데이터 객체이며 속성과 그 속성에 접근하기 위한 set..
-
MVC 패턴과 Layerd ArchitectureProgramming/TIL 2020. 2. 12. 18:47
MVC 패턴이란? MVC는 Model View Controller의 약자이다. Model은 어플리케이션이 무엇을 할 것인지 정의하며 비즈니스 로직을 가지고 있다. - 처리되는 알고리즘, DB, 데이터 등 Contoller는 사용자로 부터 어떤 요청을 처리할지 모델에 알려주고, 처리한 데이터를 뷰가 화면에 출력할 수 있도록 전달하는 역할을 한다. View는 화면에서 입력을 받거나 Model로 부터 요청 처리된 결과를 출력하는 역할을 한다. MVC 디자인 패턴의 장점은 Model과 View를 분리함으로써 비즈니스 로직과 UI 요소를 분리해 서로 영향없이 개발하기 수월하다는 것이다. Layerd Architecture란? Layerd Architecture는 중복으로 개발되는 요소를 별도의 Service 객체..
-
[Web]왜 spring을 사용해야 하는가?Programming/Web 2020. 1. 23. 12:58
Spring을 사용하지 않는다면? 1. 서블릿을 사용해야 한다. 2. 객체들의 생성/소멸에 신경을 써야 한다. 3. 변경에 유연하게 대응하기 위해서 여러 패턴들을 직접 구현해야한다. 4. 인증/보안/로깅 등 공통으로 필요한 모듈들은 직접 만들어야 한다. 5. 이외에 새로운 모듈들을 활용하기 위해서 많은 노력이 필요하다. 6. 여러 사람이 각각 자기만의 패턴과 자기만의 스타일대로 프로그램을 만들어 유지보수와 코드 분석이 불가능할 것이다.. 참조 https://opentutorials.org/course/2428/13594
-
[Web] Browser의 동작Programming/Web 2020. 1. 15. 22:56
Browser? 브라우저는 WWW(World Wide Web)에서 정보를 검색, 표현하고 탐색하기 위한 소프트웨어이다. 브라우저의 역할은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다(user-agent). 브라우저가 HTML, CSS 파일을 해서하는 방법은 웹 표준화 기구인 W3C(World Wide Web Consortium)에서 정한다. Browser Component 브라우저의 구성 요소는 다음과 같다. User Interface : 사용자가 보는 화면. 주소 표시줄, 이전/다음, Exit 버튼 등 Browser Engine : 브라우저 SW를 동작시켜주는 핵심 엔진. UI와 렌더링 엔진 사이의 동작을 제어 Rendering Engine : 요청한 컨텐츠(HTML, CSS 등)..
-
[Web] Template Literals with JSON in JavaScriptProgramming/Web 2020. 1. 15. 19:30
Template Literals ES6에서의 template literal로 쉽게 JSON data를 치환하는 방법을 소개하겠습니다. var x = { name: 'John Smith', nickname: 'Johny', }; 위의 x 객체는 name과 nickname, 두 개의 속성을 가지고 있습니다. //String concatenation console.log('Hi, I\'m ' + x.name + '! Call me "' + x.nick_name + '".'); 예시에서 객체의 속성을 text 형식으로 consol.log()에 나타내기 위해서는 (')를 백슬래시로 피해야하고, 작은 따옴표와 큰 따옴표가 섞여있어, 코드가 무엇을 말하려고 하는지 알아보기 어렵습니다. 그러나 똑같은 코드를 실행하지만..
-
[Web] JavaScript - Event BubblingProgramming/Web 2020. 1. 15. 15:38
Event Bubbling 기본적으로 이벤트는 JavaScript에서 버블링됩니다. 이벤트 버블링은 target element에 이벤트가 발생했을 때, target에서 부터 상위의 Element까지 DOM 계층 구조를 순회하면서 이벤트 리스너를 찾아 실행하는 과정입니다. 이 동작은 일반적으로 Event Propagation 또는 Event Delegation이라고도합니다. html 및 body와 같은 루트 레벨 요소에 이벤트 리스너를 추가 할 수도 있습니다. 이벤트는 아래의 순서로 버블링됩니다. (클릭된 Target에서 Target을 감싸고 있는 최상위 Element 까지 ) Target -> Body -> HTML -> Document -> Window Event Capturing 비슷하게 Captur..
-
[Web] 웹 서버 VS 웹 애플리케이션 서버 (WAS)Programming/Web 2020. 1. 14. 13:31
웹은 HTTP라는 프로토콜을 사용하여 클라이언트 - 서버간 데이터 통신을 한다. 클라이언트 측에서 요청을 보내고, 서버 측에서 응답이 되돌아 오는 구조이다. 웹 서버는 이러한 HTTP 요청을 받아들이고 HTML, 이미지 파일, CSS 같은 문서 또는 리소스 데이터를 반환하는 역할을 한다. 대표적인 웹 서버는 IIS, Apache, Nginx, GWS 등이 있다. Apache는 HTTP Daemon 이라고 부르기도 한다. * HTTP Daemon : 웹 서버의 백그라운드에서 실행되어, 들어오는 서버 요청을 대기하는 SW 프로그램 웹 서버 웹 서버는 서비스 SW가 동작하는 컴퓨터를 말한다. 웹 서버의 가장 중요한 기능은 클라이언트가 HTTP에 맞게 요청하는 HTML 문서나 각종 리소스를 전달하는 것이다. 웹..