전체 글
[Git] Git 사용법 - Git, Commit, Push, Repository
1. Git이란? 개발자라면 Git을 모를 수가 없을 것이다. 사이드 프로젝트에서든 실무에서든 개발 프로젝트에서는 Git 없이는 개발과 협업이 거의 불가능할 정도로 개발자에게는 필수적인 Tool이다. Git은 형상 관리 도구(버전 관리 시스템) 중 하나로 소프트웨어를 개발하는 집단에서 코드를 효과적으로 관리할 수 있게 도와주는 무료이자 공개 소프트웨어다. 한 마디로 Git은 여러명의 개발자가 하나의 소프트웨어를 개발할 때 소스코드를 관리를 하기 위해서 사용한다고 생각하면 된다. (1) Git의 필요성 위에 언급한 것과 같이 Git은 여러명의 개발자가 하나의 소프트웨어를 개발 할 때 소스코드 관리를 위해서 사용한다고 하는 데 그렇다면 어떤 점의 이유 때문에 Git과 같은 버전 관리 시스템을 사용해야할까? ..
Java의 예외 계층
김영한님 스프링 DB 접근 1편 - 예외처리부분을 보고 정리한 내용입니다. Exception, 예외란? 예외는 크게 두 종류로 나뉘게 된다. Checked Exception와 Unchecked Exception 그리고 예외에 해당되지 않은 Error가 있다. 예외란 개발자가 로직을 잘못 짰거나 혹은 사용자가 잘못된 값을 넘겨 정상적인 프로그램 흐름에서 벗어나는 행위를 말한다. 보통의 개발자는 예외가 나올 수 있는 상황을 미리 예측하여 예외처리를 한다.. 오류는 하드웨어에서 문제가 발생하는 경우도 있고, 완전 잘못된 로직을 짠 경우 등 시스템 레벨에서 발생하는 비정상적인 행위이기에 미리 예측해서 막을 필요가 없다. 예외도 하나의 객체이며, 모든 최상위 부모는 'object'이기에 예외의 최상위 부모도 Ob..
Serverless에 대해서 알아보자!
1. Serverless란? Serverless, 최근에 개발자로 일을 하면서 많이 들어본 단어다. 이 개념에 대해서 뭔 지는 알겠으나 남이 나에게 Serverless가 뭐야?? 라고 물어봤을 때 명확한 답을 할 정도로는 알지 못 하던 중. SWYG에서 진행하는 Serverless 스터디를 참여하게 되어 공부를 하게 되었다. Serverless는 단순하게 직역하자면, "서버가 없다"라는 뜻이다. 그렇다면 이것은 우리가 개발하는 서버가 없다는 뜻일까?? 그것은 아니다. 서버를 관리를 할 필요가 없다고 해서 Serverless라고 불리는 것이다. 서버 개발자가 하는 일은 단순하게 Spring boot 혹은 Node.js 등을 이용하여 API를 만드는 것이 아니다. Client에게 필요한 API를 제공함과 동..
[AWS] DNS와 Route53
DNS란? DNS(Domain name system)는 네트워크를 이용한 통신을 수행할 때 중요한 요소 중 하나가 바로 대상을 지정하는 주소이다. 해당 주소를 통하여 목적지 대상을 지정할 수 있고, 출발지 대상을 알릴 수도 있다. 네트워크 상에는 다양한 주소 체계가 있지만 보통은 IP 주소 체계를 이용한다. 예를 들어보자. 내가 웹 사이트를 개발하여 운영 서버에 배포를 하였을 때 타 사용자들은 어떻게 내가 개발한 웹 사이트에 방문을 할 수가 있을까?? 바로 나의 웹 사이트 주소를 통하여 방문을 할 수가 있는 데 웹 사이트 주소를 IP 주소인 216.3.128.12와 같이 알려주면 사용자가 방문하기에 불편함을 겪을 수 있는 데 이를 해소하기 위한 것이 바로 DNS다. DNS를 이용하면 www.naver.c..
[Spring] Spring을 이용한 Todo Crud 구현하기(2) - Jpa 셋팅 및 DB 연결
아래의 게시글을 확인하고 본 글을 읽기 바랍니다. [Spring] Spring을 이용한 Todo Crud 구현하기(1) - Spring boot 셋팅 해당 게시글은 아래 스택을 이용하여 구현할 예정 입니다. Spring boot Spring Security + JWT JPA 1. Spring Boot 생성 먼저 Spring Boot Project를 생성하기 위하여 아래의 사이트에 접속한다. https://start.spring.io/ 위 pinomaker.com 이번 게시글에서는 JPA와 MySQL를 셋팅해보자 runtimeOnly 'com.mysql:mysql-connector-j' // MySQL Driver implementation 'org.springframework.boot:spring-boo..
[Spring] Spring을 이용한 Todo Crud 구현하기(1) - Spring boot 셋팅
해당 게시글은 아래 스택을 이용하여 구현할 예정 입니다. Spring boot Spring Security + JWT JPA 1. Spring Boot 생성 먼저 Spring Boot Project를 생성하기 위하여 아래의 사이트에 접속한다. https://start.spring.io/ 위의 사이트에 들어가면 Spring boot 프로젝트를 생성하기 위한 사이트가 나오는 데, 아래의 설정에 맞추어서 셋팅하거나 본인이 하고 싶은 것이 있으면 수정을 한 후에 GENERATE 버튼을 클릭하면 압축 폴더가 다운로드 받아지며, 해당 폴더를 인텔리제이로 열어주자 Project(Package 모듈) : Gradle Language : Java Spring boot Version : 2.7.8 (SNAPSHOT이 붙은..
[AWS] ELB, 부하 분산 기술
1. ELB의 필요 이유 VPC 내 단일 서버를 통하여 서비스를 사용자가 접급하는 환경이 있다고 생각해보자. 만약에 단일 서버라면 그 서버에 문제가 일어날 경우에는 정상적인 서비스를 사용자에게 제공할 수 없다. 아래의 이미지를 보면 하나의 서버만을 구축하였기에, 해당 서버가 장애가 발생하면 서비스를 이용할 수 없는 치명적인 문제가 발생한다. 위의 같이 하나의 서버에서 장애가 발생하더라도 지속적인 서비스를 제공하기 위해서는 서버를 다중화 구성하여 서비스의 연속성을 보장하는 고가용성 구성이 필요해진다. 위의 그림을 보면 다수의 서버를 구성하여 서비스를 제공하게 되는 데, 인스턴스 AAA가 장애가 발생한다고 하더라도, BBB나 CCC가 존재하기에 서비스를 받을 수 있다. 하지만 서비스의 타깃을 사용자 입장에서..
[AWS] VPC 엔드포인트에 대해 알아보자
VPC 엔드포인트(VPC EndPoint) 사용자가 생성한 VPC에서 AWS Public Service와 통신을 하거나 다른 VPC로 통신이 필요할 경우 일반적으로 외부 인터넷 구간인 Public Network를 통하여 통신이 이루어진다. AWS에서 제공하는 대부분의 서비스에 접근하기 위해선는 Public Network 통신이 필요하다. 하지만 금융 서비스와 같이 강력한 보안 요건을 만족하기 위해 격리된 Private Subnet에 Resource가 생성되어야하는 경우에는 당연하게도 Public Network를 통한 통신이 불가능하다. 이에따라 Private Subnet에서도 AWS Public Service와 Private Network 통신으로 안전한 통신을 제공하는 기능인 VPC 엔드포인트 기능을 ..
[AWS] VPC의 Resource - subnet, gateway, acl, security group
VPC가 가지고 있는 Resource에 대해 정리를 해보자 1. Subnet(서브넷) 서브넷의 일반적이 개념은 네트워크 영역을 부분적으로 나눈 망으로 정의할 수 있으며, 클라우드 환경의 VPC에서도 서브넷을 이용하여 네트워크를 분리하여 나눌 수 있다. 서브넷의 IP 대역은 VPC의 IP 대역에 속해 있어야하며, 서브넷은 1개의 가용 영역에 종속되어야한다. AWS에서는 서브넷에 할당할 수 있는 IP 대역에서 미리 예약 되어있는 주소가 잇기에, 이런 예약된 주소들은 AWS Resource에 할당 할 수 없다. Private Subnet과 Public Subnet 서브넷은 Publici Subnet과 Private Subnet으로 나눌 수 있는 데, Public Subnet은 공인 네트워크의 개념이기에 외부 ..
[AWS] VPC에 대해 알아보자 - OSI 7 Layer, IP, Subnet Mask
1. VPC VPC는 Virtual Private Cloud의 약자로 AWS Cloud 내 논리적으로 독릭된 세션을 제공하여, 사용자가 정의한 가상 네트워크상에서 다양한 AWS 리소스를 실행할 수 있게 지원하는 독립된 가상의 클라우드 네트워크다. AWS 클라우드 서비스는 사용자에 따라 직접 네트워크 환경을 직접 설계 할 수 있다는 특징을 가지고 있으며, VPC 내에 IP 대역, 인터페이스, 서브넷, 라우팅 테이블, 보안 그룹, 인터넷 게이트웨이 등을 생성하고 제어할 수 있다. VPC는 클라우드 기반에 손쉽게 VPC 자원을 생성하고 삭제가 가능하며 설정 및 관리에 편의성을 제공하는 확장성과 인스턴스 레벨 및 서브넷 레벨에서 인바운드, 아우바운드 필터링을 수행할 수 있도록 보안 그룹과 네트워크 ACL을 제공..