Tech Blog of Pinomaker
클래스와 객체, 인스턴스
Language/JAVA 2022. 12. 24. 14:22

클래스와 객체 클래스란 객체를 정의해놓은 것 혹은 객체의 설계도, 틀이라고 정의할 수 있다. 클래스는 객체를 생성하는 데 사용되며 객체는 클래스에 정의된 대로 생성이 된다. 객체의 사전적인 정의는 실제로 존재한는 것이다. 우리가 주변에서 볼 수 있는 책상, 의자, 자동차와 같은 사물들이 곧 객체이다. 객체지향이론에서는 사물과 같은 유형적인 것뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주하지만 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 의미한다. 클래스의 정의 : 클래스란 객체를 정의해 놓은 것 클래스의 용도 : 클래스는 객체를 생성하는 데 사용된다. 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다..

객체지향언어와 역사
Language/JAVA 2022. 12. 24. 13:49

객체지향언어의 역사 요즘은 컴퓨터의 발전으로 컴퓨터가 사용되지 않는 분야가 없을 정도이지만, 초창기에는 주로 과학실험이나 미사일 발사실험과 같은 모의 실험을 목적으로 사용되었다고 한다. 그래서 이 시절의 과학자들은 모의실험을 위하여 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하고자 노력하였으며 이는 객체지향이론을 탄생시켰다고 한다. 객체지향이론의 기본 개념은 실제 세계는 사물(객체)로 이루어져있으며, 발생하는 모든 사건들은 사물(객체)간의 상호작용이다라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨놓은 거과 같은 가상 세계를 구현하고 가상 세계 속에서 모의 실험을 함으로써 많은 시간과 비용을 절약할 수 있었다고 한다. 객체지향이론은 상..

Cookie, Session, Cache
CS/Web 2022. 11. 18. 17:35

참고 자료 : https://mangkyu.tistory.com/69 오늘은 Cache, Cookie와 Session에 대해서 공부하고자 한다. 먼저 Cache, Cookie, Session은 왜 사용하는가?? 바로 HTTP 특징 때문인데, HTTP의 특징 중에서는 Stateless Protocol과 Connectionless Protocol이 있다. Stateless Protocol Client의 상태 정보를 가지지 않는 서버 처리 방식으로, Client와 첫번째 통신에서 데이터를 주고 받았다고 하더라도 두번째 통신에서 이전 데이터를 유지하지 않는다. Connectionless Protocol Client가 Server에 요청을 했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리 방식 하지만 ..

[Spring] Spring DI에 대해서 알아보자.
B.E/Spring 2022. 11. 18. 01:21

DI Dependency Injection의 약자로, 의존 주입을 의미하는 데, 여기서 말하는 의존이란 객체 간의 의존을 의미한다. 아래의 예시를 보고 알아보자. public class MemberService{ // MemberDao 객체 생성 private MemberDao memberDao = new MemberDao(); // Member 저장 메서드 public void save(RequestDto req){ // 같은 Email의 Member가 있는 지 조회 Member member = memberDao.selectByEmail(req.getEamil()); // Email을 가진 Member가 있으면 예외 처리 if(member != null){ throw new DuplicateMember..

Templatee Engine, Mustache 문법
B.E/Spring 2022. 11. 17. 12:43

참고 사이트 : https://taegon.kim/archives/4910 Mustache Mustache는 제어 구조를 가진, 가장 문법이 간단하고 많은 언어를 지원하는 Template Engine이며, Mustache를 기반으로 확장한 Template Engine도 몇가지 있는 데, 대표적으로는 Handlebars와 Hogan.js가 있다. 변수의 사용 아래의 데이터를 이용해 Mustache에서 변수를 사용하는 방법을 알아보자 // Data { "name" : "Chris", "company" : "Github" } Mustache에서는 {{ }}에 변수 이름을 {{ name }}와 같이 입력하여 사용하는 데, 문자열은 자동으로 HTML 이스케이프가 되어 출력이 되지만 이스케이프가 되지 않은 문자열을..

[자료 구조] Queue
CS/자료구조 2022. 11. 16. 11:33

Queue 컴퓨터의 자료구조로, 먼저 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조로 저정하는 형식 Queue는 위에서 쌓이는 이미지로 설명한 Stack과 달리 위의 이미지와 같이 입구와 출구가 다른 구조라고 생각하면 쉽다. 데이터가 들어오는 입구와 나가는 출구는 동일하지 않기에, 입구로 먼저 들어온 데이터가 출구로 가장 먼저 나가는 구조를 가지고 있으며, Queue에서 데이터가 들어가는 입구를 rear이라고 하고, 데이터가 나오는 출구를 front라고 한다. Queue는 FIFO라고 하는 데, FIFO는 First In FIrst Out의 약자로, 처음 들어가는 데이터가 가장 먼저 나오는 구조라는 의미다. 전에 이야기 했던 Stack이 가지고 있는 LIFO 특성과 차이점은..

[자료 구조] Stack
CS/자료구조 2022. 11. 16. 11:26

Stack 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out)형식의 자료 구조 Stack은 데이터가 한 줄로 위에서 아래로 들어간다고 생각하면 쉬운데, 아래로 데이터가 들어오거나 나갈 수 없고, 위에서 데이터가 들어와서 차곡차곡 쌓이고, 데이터가 나갈 때도 위에서부터 나가는 구조인데 이는 LIFO를 따르기 떄문이다. LIFO(Last In First Out)는 최근의 추가항 데이터가 가장 먼저 제거되는 것이다. Stack의 대표적인 기능은 아래와 같다. push : Stack에 요소를 추가한다. pop : Stack에서 요소를 뺀다. top : Stack의 입구와 가장 가까운 요소에 대해 반환한다. size : Stack의 크기를 반환한다.

[Nest JS] 파이프(Pipe)
B.E/Nest JS 2022. 11. 14. 13:47

Pipe 요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 기회를 제공한다. 파이프는 주로 변환과 유효성 검사를 위하여 사용 된다. 변환(Transformatiion) : 입력 데이터를 원하는 형식으로 변환 유효성 검사(Validation) : 입력 데이터를 사용자가 정한 기준에 유효하지 않은 경우 예외 처리 @nest/common Module에는 내장 파이프가 마련 되어 있다. ValidationPipe ParseIntPipe ParseBoolPipe ParseArrayPipe ParseUUIDPipe DefaultValuePipe 그 중 ParseIntPipe, ParseBoolPipe, ParseArrayPipe, ParseUUIDPipe는 전달된 인자의 타입을 검사하는 용도로 사용..

[Node JS] Node JS란?
B.E/Node JS 2022. 11. 14. 13:29

Node.js 확장성 있는 네트워크 애플리케이션(특히 Server Side) 개발에 사용 되는 소프트퉤어 플랫폼으로, Javascript를 활용하여 논 블로킹 I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 HTTP 서버 라이브러리를 포함하고 있어서 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작이 가능하여 서버의 동작에 있어서 더 많은 통제를 가능하게 한다. Node.JS는 2009년에 Ryan Dahl이 Inangural JSConf EU conference에서 발표하였는 데, Node.js의 탄생 전까지의 Javascript는 Frontend에서만 사용 되는 언어였습니다. 단순하게 HTML과 CSS로만 구성된 웹 서비스에서 동적 페이지를 다루는 용도로 사용 되었고,..

Template Engine(템플릿 엔진)
CS/Web 2022. 11. 14. 01:22

참고 사이트 : https://velog.io/@hi_potato/Template-Engine-Template-Engine Template Engine 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어 Web Template Engine는 View(Html)와 Data Logic(DB)와 분리해주는 기능을 하며, 템플릿 엔진은 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 나누어진다. Server Side Template Engine 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어서 HTML을 그리고 클라이언트에 전달해주는 역할을 수행하는 데, HTML 코드에 정적으로 사용되는 부분을 템플릿으로 만들어두고 동적으로 생성되는 부분(데..