Study/기술 및 용어 정리 19

REST와 RESTful API

이전에 면접질문 용어정리에서 짧게 정리했지만 확실하게 알아두고 싶어서 다시 정리하기로 한다. REST (Representational State Transfer) REST는 웹 기반 애플리케이션 간의 통신을 위한 아키텍처 스타일로, 리소스(자원)를 정의하고 이 리소스에 대한 상태를 전송 및 조작하기 위한 규칙을 제공한다. 주요 개념 1. 리소스(자원) 웹 서비스에서 제공하는 모든 것을 리소스로 간주한다. (ex: 사용자, 댓글 이미지 등) 2. HTTP 메서드 HTTP메서드를 사용하여 리소스에 대한 작업을 수행한다. GET: 리소스를 조회한다. POST: 새로운 리소스를 생성한다. PUT: 기존 리소스를 업데이트한다. DELETE: 리소스를 삭제한다. 3. URI(Uniform Resource Ident..

[디자인패턴] MVC, MVP, MVVM 개념과 비교

자바로 프로젝트를 할 때 가장 많이 사용했던 패턴이자 가장 유명한 패턴은 MVC패턴이었다. 그런데 MVC패턴 말고도 여기서 파생된 다른 패턴들이 있다. 오늘은 MVC, MVP, MVVM 패턴의 개념을 정리하고 비교해보기로 한다. MVC (Model+View+Controller) Model : 모델은 애플리케이션의 데이터와 비즈니스 로직을 담당한다. 데이터베이스와 상호 작용하거나 데이터를 조작하는 작업들이 이곳에서 처리된다. View : 뷰는 사용자에게 데이터를 시각적으로 표현하는 부분으로, 주로 사용자 인터페이스를 담당한다. 사용자의 입력을 받아 컨트롤러에 전달하거나 모델로부터 받은 데이터를 사용자에게 보여준다. Controller : 컨트롤러는 사용자 입력을 받아 해당하는 모델을 호출하고, 결과 데이터..

[Git] Stash, Stash pop 사용하기

열심히 코드를 짜다가 슬슬 커밋을 하려던 때.... 어 git bash를 안켰었네 나는 다른 브랜치에서 작업중이었는데, 여기서 바로 Git pull origin main 을 해버리면 지금까지 썼던 것들이 그냥 날아가버린다.... 이럴 때 사용할 수 있는 것이 Stash 명령어이다. Stash를 사용하면 현재 진행중이던 내용들을 언제든지 저장해두고 다른 브랜치로 이동하여 작업한 뒤에 다시 돌아와 복구하여 작업을 계속할 수 있다. 나같은 경우가 아니더라도 A브랜치에서 작업하던 도중 급한 수정사항 등이 생겨 B브랜치로 옮겨가거나 할 때 사용하면 좋을 것이다. 그럼 사용법을 알아보자. 먼저 로컬저장소로 이동한다. (cd 경로 or 저장소 폴더에서 우클릭- git bash here 클릭) git stash 이 명..

[Git] Git Bash 브랜치 사용법 + pr(Pull Request)하기

이번 프로젝트에서는 기능별로 브랜치를 분리해서 푸시할 예정이기 때문에 브랜치에 대해서도 공부한다. 기본적인 회원이 있는 게시판 create sql문을 만들었는데, sql브랜치를 생성해서 그쪽으로 푸시할 예정이다. 가보자고~~ 브랜치란? 브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있다. 기본 branch는 main이고 다른 branch를 이용해 개발을 진행하고 병합하면 된다. 브랜치 기능을 사용하여 main 브랜치만을 관리하는 것이 아닌 여러가지 브랜치를 생성하여 다양한 방향으로 버전관리가 가능하다. 브랜치 생성 및 이동 먼저 내가 지금 어느 브랜치에 있는지 확인해보자. git bra..

[Git] Git Bash 사용법

이전 프로젝트를 진행할 때는 인텔리제이에서 git을 연동해 푸시하는 방식을 사용했었다. 이번에는 깃의 명령어를 더 잘 익히고자 Git Bash를 사용하기로 했다. 먼저 Git Bash를 사용해서 유저 정보 설정, 커밋, 푸시하는 방법을 올려본다. git bash를 실행한 첫 화면이다. 유저 정보 등록 유저 이름과 메일주소를 설정한다. git config --global user.name [유저이름] git config --global user.email [메일주소] *Git의 설정 범위는 아래와 같이 3가지이며 일반적으로 이름과 이메일은 global로 설정한다. 지역(local): 특정 저장소에만 한정되는 설정 전역(global): 현재 사용자의 모든 저장소를 포함하는 설정 시스템(system): 해당 ..

[AWS] RDS란?

클라우드와 AWS에 이어 AWS시리즈 3탄... 이번에도 프로젝트에서 사용하는 기술스택인데 확실하게 알아두고자 정리했다. RDS란? 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있게 해주는 AWS의 서비스이다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하고, 사용자가 애플리케이션에 집중하여 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있도록 지원해준다. EC2 인스턴스를 생성해서 컴퓨팅을 사용하듯이, RDS 인스턴스를 생성해서 DB를 사용하는 원리이다. 하지만 EC2같이 유저가 시스템에 직접 로그인은 불가능하다. 그래서 RDS 인스턴스의 OS패치, 관리 등은 AWS가 전담 한다. DB 인스턴스 DB..

[AWS] AWS의 개념 및 특징 (+EC2)

저번 클라우드 포스팅( https://dsdsds.tistory.com/121 )에서 AWS를 프로젝트에서 사용한다고 썼는데, 정작 클라우드가 뭔지 몰라서 정리를 했었다. 이번에는 AWS에 대해 알아보자! AWS는 Amazon Web Services의 약자로, 아마존닷컴에서 운영하는 Cloud Computing Platform이다. 네트워킹을 기반으로 가상 컴퓨터와 스토리지, 네트워크 인프라 등 200개가 넘는 다양한 서비스를 제공하고 있기 때문에 AWS를 사용하면 쉽게 클라우드로 서버 구축이 가능하고, 많은 부분을 AWS가 해결해준다. 소규모 법인 및 개인을 포함한 다양한 사용자들이 사용하고 있으며, 클라우드 컴퓨팅의 장점을 이용하기 위해 많은 거대 기업에서도 활용하고 있다. (ex: 넷플릭스) AWS..

클라우드란?

이번 프로젝트에서는 로컬서버에서 실행하는 것에 그치지 않고 배포도 하기로 했기 때문에 어떤 것을 사용할까 고민을 했다. 가장 인지도가 높고 많이 사용하는 데다가 필요한 기능도 많은 것이 AWS였기 때문에 AWS를 사용하기로 결정했지만, 정확하게 무슨 기능을 하는지는 잘 몰랐다. 찾아보니 AWS는 클라우드 컴퓨터 분야에서 세계 1위의 점유율을 차지하고 있는 아마존 닷컴의 클라우드 컴퓨팅 서비스라고 한다. AWS의 기능을 정리하기 전에 먼저 클라우드에 대해 알아보자. 클라우드란? 컴퓨터가 가상의 공간에 있다고 가정하고 언제 어디서나 인터넷을 통해 자유롭게 사용하는 것. 큰 데이터 센터가 있고, 프로그램을 통해 각종 인프라와 IT기술을 빌려주는 서비스이다. 클라우드의 장점 민첩성 클라우드를 통해 광범위한 기술..

Ngnix 개념 및 Apache 와 비교

다른 기술스택들을 참고하던 와중 Ngnix 라는 단어를 많이 보게 되었다. 평소 프로젝트는 Apache로만 진행했기 때문에 어떤 점이 다른지 공부가 필요할 것 같아 정리해 보았다. 웹서버에 대해서는 이 포스팅에서 설명했으니 생략! Web Server와 WAS의 차이 WS(Web Server) Http 프로토콜을 기반으로, 클라이언트의 요청을 서비스하는 기능을 담당 비즈니스 로직을 넣을 수 없음 정적 컨텐츠 제공 - was를 거치지 않고 바로 제공 동적 컨텐츠 제공을 위한 요 dsdsds.tistory.com Nginx 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반구조의 경량화 웹 서버 프로그램이다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP We..

[Spring JPA] JPA의 개념과 장단점

책을 보며 진행했던 프로젝트에서 JPA를 사용했고, 스프링 부트 강의에서도JPA를 사용했지만 정확한 정의와 어떤 점이 좋은지 확실하게는 알고 사용한 것이 아니었어서 이번 기회에 공부하면서 정리했다. JPA JPA는 Java Persistence API 의 약자이며, 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. (= 라이브러리가 아님 = 실제로 동작하는 것이 아님. JPA 인터페이스를 구현한 대표적인 오픈소스가 Hibernate라고 할 수 있다.) ORM Object Relational Mapping, 객체-관계 매핑의 줄임말이다. OOP의 클래스와 RDB(Relational DataBase)의 테이블을 자동으로 매핑(연결)한다는 뜻이..

1 2