개발
(스프링 MVC 1편) 3. 서블릿, JSP, MVC 패턴
이 글은 김영한 님의 스프링 MVC 1편 수강 후 정리한 글입니다. (https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard) 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 회원 관리 웹 애플리케이션 요구사항 회원 정보는 다음과 같다. 이름: username 나이: age 기능 요구사항은 다음과 같다. 회원 저장 회원 목록 조회 1. 회원 도메인 모델 회원 도메인 모델을 생성한다...
(CS) 프로세스, 스레드, 프로세스 동기화 기법
프로세스 프로세스(Process)는 운영 체제에서 실행 중인 프로그램을 의미한다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리를 할당받아 실행 중인 것을 의미한다. 프로세스는 프로그램이 실행될 때 메모리 상에 할당된 작업 공간과, 프로세스 실행에 필요한 자원들(레지스터, 파일, 네트워크 연결 등)을 포함한다. 프로세스는 프로그램 실행 과정에서 운영 체제로부터 할당받은 자원을 사용하여 작업을 수행하며, 프로세스는 하나 이상의 스레드(Thread)를 가지고 있을 수 있다. 각각의 프로세스는 독립적으로 실행되며, 다른 프로세스와는 메모리 공간을 공유하지 않는다. 1. 프로세스 메모리 구조 프로세스 메모리 구조는 운영 체제에서 프로세스를 실행하기 위해 메모리를 할당하는 방법을 의미한다. 대부분의 운영..
(CS) 프로세서, 메모리, MMU, 시스템 버스
프로세서 1. 프로세서란? 프로세서(processor, 처리기)는 컴퓨터의 중앙 처리 장치(CPU)를 말한다. 흔히 컴퓨터의 뇌로 여겨진다. 제어 장치, 연산 장치, 레지스터 그리고 데이터 버스로 구성된 디지털 시스템의 핵심 부분으로, 프로그램을 기억 장치로부터 읽어 연산 처리, 비교 처리, 데이터 전송, 편집, 변환, 테스트와 분기 등의 데이터를 처리하고, 각종 장치를 구동하는 역할을 담당한다. 컴퓨터에서 수행되는 모든 작업의 계산, 연산, 제어 등의 명령들을 처리한다고 생각하면 되겠다. 프로세서는 입력된 명령어를 실행하고, 데이터를 처리하며, 계산을 수행한다. 이러한 작업들은 컴퓨터의 모든 프로그램에서 필요하다. 따라서 프로세서는 컴퓨터의 핵심 부품 중 하나이며, 컴퓨터의 성능을 결정하는 중요한 역할..
(스프링 MVC 1편) 2. 서블릿
이 글은 김영한 님의 스프링 MVC 1편 수강 후 정리한 글입니다. (https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard) 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 프로젝트 생성 1. Spring initializr로 스프링 프로젝트 생성 스프링 부트 스타터 사이트(https://start.spring.io)로 이동해서 다음과 같이 스프링 프로젝트를 생성한다. ※ Pack..
(스프링 MVC 1편) 1. 웹 애플리케이션 이해
이 글은 김영한 님의 스프링 MVC 1편 수강 후 정리한 글입니다. (https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard) 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 웹 서버, 웹 애플리케이션 서버 웹 (서버, 인터넷, 클라이언트)는 HTTP(하이퍼텍스트 전송 프로토콜) 기반으로 통신한다. 즉, HTTP 메시지에 아래와 같이 거의 모든 형태의 데이터를 담아서 전송한다. • ..
[Spring] Spring JPA FindByFK (외래키로 조회)
스프링 프로젝트 진행 중 외래키를 사용해 DB 내의 정보를 찾아와야 할 경우가 생겼다. FindBy와 외래키를 동시에 사용해본 적이 없어 이에 대해 정리해보고자 한다. 먼저 엔티티 클래스는 다음과 같다. @Getter @Setter @NoArgsConstructor @AllArgsConstructor @Entity @IdClass(ReviewLikeId.class) public class ReviewLike extends BaseTimeEntity implements Serializable { @Id @ManyToOne(targetEntity = Review.class, fetch = FetchType.LAZY) @JoinColumn(name = "reviewId") private Review revie..
[Spring] Spring JPA 복합키
프로젝트 진행 중 아래 그림의 '리뷰 좋아요' 테이블을 위해 외래키들로 이뤄진 복합키를 사용해야하는 상황이 생겼다. review_id는 리뷰 테이블에서 참조하여 받아오는 외래키이고, 마찬가지로 user_id도 사용자 테이블에서 받아오는 외래키이다. 이전에 Spring JPA에서 복합키를 사용해본 적이 없어서 진행하는데 큰 어려움이 있었다. 다음에 또 이런 상황이 발생한다면 시행착오를 줄이고 어려움 없이 진행하기 위해 제대로 정리해보고자 한다. 또한 나처럼 외래키와 복합키를 동시에 사용해야 하는 다른 개발자들에게도 이 글이 도움이 되었으면 좋겠다. 시작하기에 앞서 외래키를 받아올 부모 테이블인 Review 테이블의 코드이다. @Getter @Setter @NoArgsConstructor @Entity pu..
AWS 서비스의 종류
AWS를 처음 사용할 때 처음 들어보는 서비스를 사용하다 보니 내가 사용하고 있는 현재 서비스들이 무슨 역할을 하는지도 모른 채로 사용할 때가 있었다. 현재 AWS가 제공하는 다양한 서비스들 중 아직 사용해보지 못한 서비스들도 훗날 사용할 일이 있다고 생각하기에 이번 기회에 AWS의 다양한 서비스들을 정리해보고자 한다. 1. EC2 (Elasitc Compute Cloud) 클라우드 Virtual Machine(가상 머신)으로 가상 컴퓨팅 환경 서비스를 제공한다. 프로젝트의 백엔드 코드를 실행할 수 있을 뿐만 아니라, 컴퓨팅 리소스에 대한 포괄적인 제어권을 제공하기에 Amazon에서 제공하는 서비스의 가장 중심 되는 서비스라고 할 수 있다. 각 사용 사례에 맞게 여러 가지 프로세서, 스토리지, 네트워킹,..
[Spring Boot & AWS] Chpt 8 - EC2 서버에 프로젝트를 배포해 보자
이 글은 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스를 읽고 정리한 글입니다. 이 책의 1~5장에서는 스프링 부트로 서비스 코드를 개발하였고, 6장과 7장에서는 배포 환경을 구성하였다. 이제 이들을 조합해서 실제로 서비스를 배포해 보도록 하겠다. 1. EC2에 프로젝트 Clone 받기 먼저 깃허브에서 코드를 받아올 수 있도록 EC2에 깃을 설치하겠다. EC2에서 아래의 명령어를 실행하자. sudo yum install git 설치가 완료되었으면 아래 그림처럼 설치 상태를 확인하자. 다음으로 git clone으로 받아온 프로젝트를 저장할 디렉터리를 생성하자. mkdir ~/app && mkdir ~/app/step1 생성한 디렉토리로 이동하자. cd ~/app/step1 본인의 깃허브 웹페..
[Spring Boot & AWS] Chpt 7 - AWS에 데이터베이스 환경을 만들어보자 - AWS RDS
이 글은 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스를 읽고 정리한 글입니다. 웹 서비스의 백엔드를 다룰 때 애플리케이션 코드를 작성하는 것만큼 중요한 것이 바로 데이터베이스를 다루는 일이다. 큰 기업의 경우 데이터베이스만을 전문적으로 처리하는 DBA 담당자들이 존재하지만, 스타트업이나 개발자의 수가 적은 경우에는 개발자여도 데이터베이스를 다뤄야 한다. 그렇기 때문에 데이터베이스 구축과 쿼리 튜닝에 대해서 기본적인 지식은 갖춰야 할 필요성이 있다. AWS의 RDS를 사용하여 데이터베이스를 구축하고, EC2 서버와 연동을 해보자. RDS는 AWS에서 제공하는 클라우드 기반 관계형 데이터베이스이다. 잦은 운영 작업들을 자동화하여 개발자가 개발에 더 집중할 수 있게 해 주고, 조정 가능한 용량..