[개인 스터디] NestJS 정복하기 #03 - 게시글 생성 API | Create API
·
📚 스터디/백엔드
게시글 생성 API 만들기 - Express Post 메소드 게시글 Model 구현 [게시글 객체형태 지정] 게시글 생성 API를 만들기 위해선, 게시물에 필요한 데이터가 어떤 것이 필요한지를 정의해주기 위해서 게시글의 모델을 만들어준다. 모델을 정의할 때는 2가지 방법이 있다. # Interface로 정의 & 클래스로 정의 이번에 만들 게시글 생성 API는 게시글 생성 구조만 다뤄볼 것이기에 Interface로 게시글 Model를 만든다. 클래스로 모델을 만드는 것은 NestJS로 API를 여러가지 다뤄본 후 만들예정이다. 아래와 같이 게시글 모델을 파일을 boards 폴더 내에(Controller, Module, Service 파일이 있는 폴더) 생성 후 Interface로 구성한다. 인터페이스는 "..
[개인 스터디] NestJS 정복 - CRUD API 구현
·
📚 스터디/백엔드
해당 포스팅의 목적은 NestJS를 공부하면서 구현한 API를 정리해두는 포스팅입니다. 이론 포스팅과 실습 포스팅을 분리하기 위해서 만들어진 포스팅이고, 해당 포스팅은 실습 포스팅입니다. 블로그를 참고하실 때 유의해주시길 바랍니다. 해당 포스팅은 NestJS를 공부하면서 꾸준히 추가될 예정이고, 추가될 때마다 포스팅 업데이트를 진행합니다. Part. 1-1 | 모든 게시글 조회 API { Read API | Get } 해당 API는 데이터베이스와 연동하지 않고 Nest 로컬변수에 게시글 데이터를 저장해두고, 구현했음을 참고하길 바란다. 그리고, Module, Controller, Service 파일의 구성은 이전 포스팅에서 다뤘기에, 생략하도록 하겠다. 아래의 구현된 코드들은 각 파일의 클래스 내부에 작..
[CS 1-2 | 프로그램 설계 방법론] Java 인터페이스와 상속 10주차
·
CS 대학강의
인터페이스 - 작업의 분업을 위한 도구 아래와 같이 기존의 MVC 아키텍처로 구성한 프로그램은 종속관계가 있기때문에 분업하여 개발을 진행하기가 어려움이 있다. Model, ViewOut이 만들어지고, Controller 개발이 가능해짐. 그래서, Controller 개발자는 Model, ViewOut이 만들어질 때까지 놀아야됨 ㅎㅎ.. 그래서 "인터페이스"를 정의해서 분업화를 가능한 환경을 만든다. 인터페이스 란? 인터페이스는 자바에서 클래스들이 구현해야하는 동작을 지정하는 용도로 사용되는 추상 자료형이다. class 대신 interface라는 키워드를 이용하여 선언할 수 있으며 메소드 시그니처와 상수선언만을 포함할 수 있다. 클래스에서 인터페이스를 구현하기 위해서는 implements 키워드를 사용하..
[개인 스터디] NestJS 정복하기 #02 - NestJS | src 폴더 로직알아보기
·
📚 스터디/백엔드
Express 프레임워크 사용 로직 Node.js (Express 내장 X) Index.js - > route -> Controller NestJS (Express 내장) Module -> Controller -> Service # NestJS 라우팅 설정 - 엔드포인트 관리 NestJS는 Express를 내장하고 있기에, Express에 대한 설정이 필요없다. 그리고, NestJS는 라우팅 파일을 별도로 생성하지 않고, Controller에서 Get, Post, Delete 메소드들을 호출하고, 엔드포인트를 할당해준다. (Module 파일에서 할당된 라우트별로 모듈을 만들고, 이에 따라서 클라이언트가 접근가능하게 해준다.) main.ts -> Module.ts -> Controller.ts -> Ser..
[개인 스터디] NestJS 정복하기 #01 - NestJS 템플릿의 이해
·
📚 스터디/백엔드
NestJs 개발의 이해 - NestJS 아키텍처 NestJS로 게시물 생성 API를 만든다고 가정해볼 때, 아래와 같이 모듈?을 생성해서 개발을 한다. 아마도, Node.js에서 기능별로 폴더를 나눠서 아키텍처 구성해둔 것과 같다고 생각이 듦. 게시물 생성 시에는 "공개글", "비공개글"을 설정할 수 있기에 이에 따른 인증을 해주는 Auth 모듈과 게시물 생성을 해주는 Board 모듈을 구성해서 개발한다는 걸 알 수 있다. 해당 부분에 대해선, NestJS를 좀 더 공부해보고 추가 포스팅을 하도록 하겠다. 현재의 포스팅은 NestJS 단기적으로 공부하면서 정리하는 포스팅이기에, 내용이 추상적일 수 있다는 점을 감안하면 좋겠다! 시간이 남을 때, 업로드된 포스팅을 보기좋게 업데이트 하겠습니다~~ Nest..
[안드로이드] 4주차: LifeCycle, 외부 작용으로의 Activity 예외처리
·
📚 스터디/프론트엔드
앱의 기본 특징 - 피할 수 없는 외부와의 상호작용 앱은 PC와 다르게 외부 작용으로부터 직접적으로 상호작용을 받는 특징이 있다. 예를들면, 휴대폰 모바일 게임 앱을 사용하다가, 외부 작용인 "전화"가 걸려오면, 진행 중인 게임이 멈추고 "전화"가 걸려온다. 그러면, 전화가 와서 전화 화면으로 화면이 바뀌게 되면, 앱에서는 어떤 동작을 해야될까? 참고로, 전화가 걸려오는 건 안드로이드 OS에서 작동하는 시스템이다. 그렇기에, OS를 수정하는 건 어려운 일.. 이에 대해선, Activity의 LifeCycle을 통해 해결한다. 오늘은, Activity LifeCycle에 대해 배워보고, 안드로이드 앱에서 외부 작용을 어떻게 처리하는지를 알아보자! Activity LifeCycle (생명주기) 란, 하나의 ..
[경험] 구글 애드센스 통과하기... - 구글 애드센스 통과하는 법
·
💭 경험&생각
지난 시간동안 Tistory로 블로그를 하면서 구글 애드센스 신청을 3번했다. 하지만, 결과는? 모두 다 탈락이다 ㅋㅋㅋ.... 오늘의 포스팅 목적은 나름 구글 애드센스 4트의 경험삶아 구글 애드센스를 합격?할 수 있도록 블로그의 설정을 해준 사항들에 대한 정리이다. 구글 애드센스의 시작 - 광고설정 애드센스를 삽입하는 행위이므로, 가장 첫번째로 구글 광고를 블로그에 삽입한다. # 구글 애드센스 직접 추가하기 블로그에 구글 애드센스를 추가하는 방법은 "스킨 편집"의 HTML 수정에서 직접 추가하는 방법이 있다. 해당 방법은 아래의 구글 애드센스 사이트에서 구글 애드센스 HTML 태그를 복사해서 붙여넣자. Google 애드센스 - 웹사이트에서 수익 창출하기 Google 애드센스의 웹사이트 수익 창출 기능을..
[개인 스터디] NestJS을 시작하며 - NestJS 개발환경 셋팅
·
📚 스터디/백엔드
NestJS 란, NestJS는 서버 측 Node.js 애플리케이션을 구축하기 위한 프레임워크이다. 대부분 TypeScript로 구성되어 있다. - JavaScript도 존재한다고 함. # NestJS 특징 Nest는 Express와 같은 HTTP 서버 프레임 워크를 내장하고 있다. Express란, Node.js를 위한 웹 프레임워크이다. # Node.js와 Express의 차이점 Node.js와 다른점은, Express 위에 NestJS가 구동되고 있기에, API를 개발자에게 직접노출한다는 점이다. - Express내의 타사 모듈(API)을 직접 접근이 가능? 하다고 함 NestJS의 철학 Nest는 개발자와 팀이 고도로 테스트 가능하고 확장 가능하며 느슨하게 결합되고 유지 관리가 쉬운 애플리케이션을..
[생각] 프로그램 설계 방법론 중간 시험을 치르고..
·
💭 경험&생각
(프로그램) 기획을 생략하고 진행한 설계는 불안정하다. 프로그램 설계 방법론 중간 시험의 개발 시간은 1시간 45분으로 주어졌다. 그래서, 1시간 45분안에 교수님이 지정해준, "자바 Application 서비스"를 구현했어야 됐다. 한마디로, 타임어택으로 "내가 정해준 자바 서비스"를 구현해라 인셈이다 ㅋㅋㅋ.. 대학교 학점이 사람을 나타낼 수 없는 이유 ㅎ... 주어진 시간안에 처음보는 "서비스"를 구현해야 되기에, 허겁지겁 만들어야할 서비스의 설명이 적여있는 문제지를 읽었다. 그리고, 읽은 다음 이해되는 족족, 프로그램 설계를 진행했다. 이때 구성했던 프로그램 설계는 다음과 같다. 참으로, 난잡하다 ㅎㅎ.. 시험 당시에는 빨리 프로그램을 구현해야된다는 압박때문에, 문제지를 읽으면서 구현해야 될 자바..
[CS 1-2 | 오픈소스 SW 기초] 가상화 & 리눅스 컨테이너 with Docker 6주차
·
CS 대학강의
가상화란 전통적으로 하드웨어에 바인딩된 리소스를 사용하여 유용한 IT 서비스를 만들 수 있게 해주는 기술 사용자 또는 환경에 기능을 분산하여 물리적 시스템의 전체 용량을 사용 가상화 작업을 통해, 하나의 하드웨어를 통해서 2개 이상 (여러 개)의 서버를 분할하여 관리할 수 있다. 가상화의 역사 현재는 클라우드 컴퓨팅으로 가상화가 발달되어 있다. 클라우드 컴퓨팅은 클라우드 서비스로, 무선으로 다른 곳에 위치한 서버에 접근하여 서버를 사용할 수 있게 해준다. 대표적으로 AWS, Naver Cloud, Google Cloud 등등이 있다. 하이퍼바이저 - 가상화의 핵심 하이퍼바이저는 가상 머신을 생성하고, 실행하는 소프트웨어이다. 메모리나 프로세싱과 같은 리소스를 (하드웨어 자원을) 가상으로 공유하여 하나의 ..