분류 전체보기 14

Spring JPA를 활용한 간단한 게시판 만들기 - 회원 로직 구성

지난번 기본설정에 이어 회원로직을 구성해보도록 하겠습니다. 회원만 글을 작성할 수 있는 게시판을 구성할 예정이라 회원가입 → 로그인 → 로그인에 성공하면 글 작성을 하는 패턴으로 진행 할 예정입니다. 다만 로그인 이후의 로직은 추후 보안로직을 완성한 후 적용할 예정이고 지금은 기본적인 회원가입 로직부터 구성하도록 하겠습니다. Entity 구성 구분을 편하게 하기 위해서 member 패키지를 하나 만듭니다. 대부분의 작업 경로는 src → main → java → {파일명} 경로로 되어있고 {파일명}.{다른파일명} 으로 되어있거나 {파일명} 만으로 되어있을 수 있습니다. 가장 하위패키지에 패키지를 생성하신 후 Member 이름의 클래스를 만듭니다. @Getter @Setter @AllArgsConstruc..

개발/실습 2023.05.25

Spring JPA를 활용한 간단한 게시판 만들기 - 기본설정

Spring JPA를 활용하여 간단한 게시판 만들기를 해보겠습니다. 게시판은 백엔드 개발영역에서 가장 기초적이면서도 필요한 CRUD를 모두 구현연습을 해볼 수 있는 좋은 예제라고 봅니다. Spring boot 파일생성 먼저 start.spring.io 사이트에 접속합니다. 사이트에 접속하면 볼 수 있는 화면입니다. 각 항목들에 대해 차근차근 알아보겠습니다. 우선 제가 활용한 설정 입니다. 1. Project : Gradle-Groovy 2. Language : Java 3. Spring Boot : 2.7.12 (업데이트가 잦은 편 입니다. 저는 개인적으로 가장 오래된 버전을 사용합니다) 4. Project Metadata : 프로그램 파일명 등을 설정하는 부분으로 각자 원하는 이름을 설정하면 됩니다. ..

개발/실습 2023.05.20

네트워크에 대한 이해 - 네트워크 구성 기술 (UDP, PORT, URL, DNS)

UDP UDP는 User Datagram Protocol의 약자로 TCP/IP 4계층 모델에서 2계층에서 동작하는 IP와 4계층에서 동작하는 애플리케이션(http)을 중개하는 역할을 합니다. TCP와는 아래와 같은 차이점이 있습니다. 구분 TCP UDP 타입 연결 지향적 프로토콜 데이타그램 지향적 프로토콜 속도 UDP에 비해 느림 TCP보다 빠름 신뢰성 데이터 수신자 까지 전송 보장 전송 보장 안됨 순서보장 전달하는 패킷 순서 보장 전달하는 패킷 순서 보장 안됨 즉 패킷의 정확한 전달 순서와 과정이 반드시 보장되어야 할 경우에는 TCP를, 속도가 중요한 경우에는 UDP를 사용한다고 볼 수 있겠습니다. 예를들어 스트리밍, 보이스톡과 같은 실시간 반응이 중요한 서비스의 경우 지연없이 매끄럽게 서비스를 활용하..

개발/지식 2023.05.17

네트워크에 대한 이해 - 네트워크 구성 기술 (TCP/IP)

웹 애플리케이션이란 무엇일까요? 스마트폰을 사용하면서 애플리케이션을 다운받고 해당 기능을 사용하다보니 애플리케이션은 익숙하지만 웹 애플리케이션은 다소 생소할 수 있습니다. 일반적으로 Android 또는 ios 에서 사용하는 애플리케이션은 네이티브 애플리케이션 이라고 합니다. 네이티브 애플리케이션은 특정 OS에 종속되어서 다른 OS에서는 사용할 수 없습니다. 웹 애플리케이션은 브라우저를 통해 접근이 가능한 애플리케이션 입니다. 근데 웹사이트와 웹 애플리케이션은 모두 브라우저를 통해 접속하다보니 구분하기가 다소 어려울 수 있는데요, 간략하게 비교를 해보자면 웹사이트 정보 제공을 위해 사용되는 정적인 웹페이지들의 집합 웹브라우저를 통해 사이트에 방문하여 정보 또는 컨텐츠 확인 가능 정적인 컨텐츠를 제공하여 사..

개발/지식 2023.05.16

데이터베이스에 대한 기본적인 이해 (NoSQL)

SQL 기반의 데이터베이스는 데이터간의 관계를 정의하고 테이블, 컬럼 등을 사용하여 데이터를 저장했다면 NoSQL은 주로 key-value 형태로 데이터를 저장하는 방식 입니다. SQL에서는 데이터를 테이블과 각 칼럼에 따라 조회했다면 NoSQL은 key값을 찾고 해당 key값에 대응하는 값들을 찾아내는 방식이라고 볼 수 있겠습니다. 다양한 NoSQL의 종류 NoSQL은 key-value 방식이 가장 기본적인 데이터 모델이지만 해당모델 뿐만 아니라 다르게 활용될 수 있는 여러 방식이 있습니다. 각 특징을 살펴보겠습니다. 가장 기본적인 방식 입니다. 간단하고 빠른 데이터 접근을 할 수 있고 주로 메모리기반의 데이터베이스에서 사용됩니다. 데이터간의 관계를 표현하지 않기 때문에 단순한 조회 및 삽입 작업에 적..

개발/지식 2023.05.16

데이터베이스에 대한 기본적인 이해 (SQL)

데이터베이스란? 텍스트, 이미지, 파일 등 각종 데이터를 저장하기 위해서 필요한 도구 입니다. 프로젝트를 만들게 되면 여러 데이터들을 따로 보관해야 하고 이러한 보관작업을 도와주는 역할을 한다고 볼 수 있습니다. 데이터베이스는 조직화된 방식으로 데이터를 저장, 관리, 조작하는 시스템 전체를 의미합니다. 사용하고 있는 PC에 저장공간(하드디스크)이 있고 여기에 각종 데이터들을 저장할 수 있는데요, 하드디스크는 파일의 저장 위치, 크기, 접근 권한 등을 관리하는 역할을 합니다만 이를 데이터베이스라고 보진 않습니다. 데이터베이스가 이보다 더 큰 개념으로 구조화된 데이터를 관리하는 시스템 이라고 보시면 됩니다. 이러한 데이터베이스는 사용 용도에 따라서 SQL(Structured Query Language) 또는..

개발/지식 2023.05.16

AWS를 이용하여 배포 해보기 - 보안그룹 설정

이전에 보안그룹을 설정하지 않고 서버를 실행해서 제대로 된 결과를 받지 못했습니다. 오늘은 보안그룹을 설정해서 이를 해결하도록 하겠습니다. 보안그룹? 보안그룹은 인스턴스에서 발생하는 트래픽에 대한 가상 방화벽 입니다. 트래픽이 인스턴스로 들어오는 경우라면 인바운드, 인스턴스에서 트래픽이 나간다면 아웃바운드 라고 부릅니다. 앞서 제대로 배포를 진행했는데도 정상적인 접속이 되지 않았던 이유는 인바운드 규칙을 설정하지 않았기 때문입니다. EC2 인스턴스는 기본적으로 인바운드 규칙에 허용되지 않은 것들은 접근하지 못하도록 필터링 되어있습니다. 인스턴스를 생성하면 기본적으로 SSH접속을 위한 규칙만 생성이 되었기 때문에 ubuntu OS로 접속해서 이런저런 설정들을 할 수 있었지만 SMB프로토콜 등의 기타 규칙이..

개발/실습 2023.05.15

AWS를 이용하여 배포 해보기 - 인스턴스 상에서 서버 실행

일전에 인스턴스 생성을 완료했습니다. 이제 해당 인스턴스를 통하여 서버를 실행하도록 하겠습니다. 인스턴스 연결 및 세팅 먼저 인스턴스로 들어가서 연결 버튼을 눌러줍니다. 인스턴스에 연결하는 방법은 1. EC2 인스턴스 연결 2. Session Manager 3. SSH 클라이언트 4. EC2 직렬 콘솔 이렇게 총 4가지가 있습니다. 1번과 2번의 경우 공통적으로 EC2 인스턴스에 원격으로 접속하는 방법이고 해당 연결을 실행하게 되면 통상적으로 터미널 환경에서 EC2 에 대한 컨트롤을 진행하게 됩니다. 보안적인 측면에서는 2번의 방식이 유리하지합니다. Session Manager의 경우 별도로 SSM 에이전트를 EC2에 설치해줘야 하는데 SSM 설치는 무료로 진행이 가능하지만 Session Manager의..

개발/실습 2023.05.14

AWS를 이용하여 배포 해보기 - 생성한 인스턴스 로컬과 연결하기

지난번에 생성한 인스턴스를 로컬 pc와 연결하여 리모트 작업을 할 수 있도록 작업을 해보겠습니다. 작업에 앞서서 로컬 pc에 반드시 ubuntu 및 linux 가 설치되어있어야 합니다. 설치 및 적용 방법은 사용하는 OS에 따라 다소 차이가 있으므로 OS에 맞춰서 설치를 진행합니다. 윈도우 우분투 설치 맥 우분투 설치 저는 인스턴스를 20.04로 만들어서 로컬에도 동일하게 20.04버전을 설치하여 사용했는데 22.04를 설치하신 분은 22.04로 받으시면 됩니다. 우분투는 메이저 버전과 마이너 버전이 있는데 마이너 버전은 서로 호환이 가능한 반면 메이저 버전은 호환되지 않습니다. 20.04 와 22.04 모두 메이저 버전으로 호환이 되지 않거나 제한적인 호환문제가 발생할 수 있으니 가급적 버전을 꼭 맞춰..

개발/실습 2023.05.12

AWS를 이용하여 배포 해보기 - 인스턴스를 생성하여 연결하기

지난번 회원 가입에 이어서 이번엔 AWS를 통하여 배포를 할 수 있도록 EC2의 인스턴스를 생성하도록 하겠습니다. EC2란? AWS는 여러 유용한 많은 기능을 제공해줍니다. 그 중 EC2 라는것은 AWS가 빌려주는 가상의 컴퓨터 라고 볼 수 있습니다. 저같은 경우에는 저의 개인 pc에서 인텔리제이 IDE를 사용하여 프로젝트를 만들고 실행하여 localhost:8080 서버로 접속하여 구현해둔 기능들을 사용할 수 있도록 했는데요, 여기서 서버의 실행(배포)부분을 EC2가 대신해준다고 볼 수 있습니다. EC2는 데이터베이스, 서버, 스토리지 등의 여러 서비스를 제공해줍니다. 기본적인 배포를 하기 위해서 먼저 인스턴스를 만들어 보도록 하겠습니다. 이 인스턴스가 앞서 말씀드린 가상의 컴퓨터를 만들어 주는 과정이..

개발/실습 2023.05.12