Load Balancer서버나 인프라에 가해지는 작업량, 혹은 트래픽 부하를 로드라고 한다. 한 서버가 모든 로드를 다 부담할 때 트래픽이 너무 많다면 장애가 발생할 것이다. 이럴 때 이러한 로드를 여러 리소스에 분산시키는 것이 로드밸런서이다. AWS에는 로드밸런서 서비스로 ELB(Elastic Load Balancer)가 있다. 로드밸런서는 OSI 7계층에서 3, 4, 7계층에 존재할 수 있다. 각각 IP, TCP/UDP, 그리고 HTTP 기반으로 트래픽 분산을 수행한다. AWS에서는 3계층 로드밸런서로 GWLB(Gateway Load Balancer)가 2020년 쯤 출시되었는데, 시험에선 어쩌다 한 번 나오고 대부분 4계층 로드밸런서인 NLB(Network Load Balancer)와 7계층 로드밸..
EC2 - Elastic Compute CloudEC2란 AWS의 가상 컴퓨터 리소스이자 가장 기본적인 서버 리소스이다. 컴퓨터 하나 당 EC2 인스턴스라고 한다. 컴퓨터이니 OS가 필요하고, OS는 설정과 정보들을 담아둔 이미지인 AMI로 실행할 수 있다. 인스턴스의 상태는 여러가지가 있지만 종료와 중단은 특히 구분되어야 한다. 중단(Stop)은 인스턴스를 사용하진 않지만 삭제하지 않고, 종료(Terminate)는 인스턴스를 삭제하는 것이다. 디스크 역할을 하는 스토리지 볼륨으로는 네트워크 기반의 EBS(Elastic Block Storage)나 EFS(Elastic File System)를 연결해줄 수도 있고, 인스턴스 자체의 스토리지인 인스턴스 스토어를 사용할 수 있다. 네트워크 기반의 스토리지는 ..
클라우드에 대한 개념은 당연하고 각 CSP의 이해 또한 매우 중요해졌다. 그 중에서 가장 많이 사용하는 AWS의 자격증을 공부해야겠다고 항상 생각해왔는데, 양이 많고 시험료가 비싸 항상 망설이고만 있었다ㅠㅠ 그러던 중, 2024년 말까지 시험료 반값 할인에 대한 정보를 접해 얼른 신청해버리고 공부를 했다!! AWS SAA에 자격증을 공부했던 내용들을 기록해보려 한다. 반값 할인에 대한 정보는 아래 링크에서 확인할 수 있다. 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services aws.amazon.com 가장 첫 글로 AWS SAA에 대한 소개와 기본적인 정보들에 대해 기록해보겠다.AWS Certified Solution Architect - AssociateAWS SAA는 AW..
JOIN은 간단하면서도 어렵다. JOIN을 더욱 쉽게 이해할 수 없을까 고민하며 정리를 해보겠다. JOIN에 앞서..쿼리 실행 순서MySQL 등의 DBMS가 DB로부터 데이터를 추출하는 과정은 다음과 같다.💡 SQL 실제 실행 순서어디서 찾을지 ?FROMJOIN어떤 조건의 데이터 중 ?WHEREGROUP BYHAVING어떤 속성 ?SELECT순서 ?ORDER BY 한 테이블에서 데이터를 찾고자 한다면 쿼리 작성은 매우 간단하다.SELECT 속성FROM 테이블WHERE 조건GROUP BY 기준ORDER BY 정렬 두개 이상의 테이블에서 여러 속성을 찾을 쿼리를 작성한다면 어떻게 할 수 있을까?FROM에 찾고 싶은 대상 테이블들을 설정한다.테이블들을 공통의 속성으로 이어준다.원하는 속성을 테이블 기준으로 ..
자바를 이용해 애플리케이션을 만들었다면 동작을 검증하기 위한 다양한 테스트를 작성하기 위해선 대표적으로 JUnit을 활용할 수 있다. JUnit 5The JUnit team uses GitHub for version control, project management, and CI.junit.org 가장 최근 버전인 JUnit 5와 JUnit 4은 약간의 차이가 있어서 공식 문서를 참고하면 좋고, 기본적으로 JUnit을 이용해 테스트를 하기 위해선, 내가 테스트하고자 하는 입출력을 정의해주어야 한다. 하지만 사람이 직접 생각할 수 있는 케이스는 한정적이고 매번 다르다. 오늘 생각하지 못 했던 케이스가 내일은 생각날 수도 있다. 유저 생성 시 이메일 검증 테스트RFC 5322에 따르면 이메일은 특정 형식을 ..
개방 폐쇄 원칙은 단일 책임 원칙에 비해 더 이해하기 쉬울 수 있다. 하지만 객체지향 프로그래밍을 작성할 때 더욱 체감되는 원칙이 될 것이다. 책임은 개념적인 요소지만, 개방 폐쇄 원칙은 소프트웨어의 유지를 위한 설계에 더욱 직접적임을 시간이 갈 수록 느끼고 있다.개방 폐쇄 원칙이란모든 시스템은 그 생명주기에서 변하기 마련이다. 프로그램을 만들고 배포를 첫 배포를 하게 되면 해당 프로그램의 첫 버전이 완성된다. 만약 우리가 첫 버전의 프로그램을 개정해 개정된 버전을 만들었다면, 개정된 버전의 프로그램이 첫 버전의 프로그램보다 더 오래 유지될 수 있도록 신경쓰고 싶을 것이고, 그러기 위해선 변화를 마주했을 때 더욱 안정적이어야 할 것이다. 변화에 안정적인 프로그램 설계를 하기 위해 1988년 버트란드 마이..
컬렉션은 가장 많이 사용하는 데이터 구조 중 하나일 것이다. 이번 포스트는 Java의 Collection에 대해서 더 이해하고 잘 사용하기 위한 방법에 대한 기록을 정리한다. 구구절절한 내용이 많아 만약 단순히 Collection에 대한 용도가 궁금하다면 공식 문서를 참고하는 것이 가장 나을 것이라 생각한다.Collection컬렉션이란 여러 데이터의 묶음이다. Collection은 추상체다. 데이터 묶음의 종류로 구상체를 나눌 수 있고, 예를 들면 List가 있다. 그리고 List의 구상체는 LinkedList, ArrayList, Stack, Vector등이 있다. Java에서 사용되는 컬렉션 중 하나인 List를 예시로 들어보겠다.List linkedList = new LinkedList();List..
인터페이스의 기능 구현 강제Java의 인터페이스는 모든 메서드가 추상 메서드로 존재한다. 그래서 구현체인 클래스에게 인터페이스의 메서드들을 구현하도록 강제한다. 인터페이스를 구현한 클래스가 있는데 인터페이스에서 명시되어 있는 메서드를 구현하지 않은 채로 냅두면 컴파일 에러가 뜬다. 다형성 제공public interface MyRunnable { void myRun(); } public interface YourRunnable { void yourRun(); } public class MyClass implements MyRunnable, YourRunnable { @Override public void myRun() { System.out.println("my run"); } @Override publi..
포스팅에 앞서, 공부한 내록을 기록하며 적절한 사진을 찾아 보충하려다가 어떤 글에 필요한 모든 사진이 있었다. 약간 오래되었지만 너무나도 잘 설명된 글이다. UML: 클래스 다이어그램과 소스코드 매핑불과 몇 년 되지 않은 학생 시절... 처음으로 UML을 접했고, UML의 기초적인 그리는 법과 사용법을 배웠습니다. 개인적으로 쉽지 않은 수업이었는데 그 중 가장 많이 사용되는 클래스 다이어그램에www.nextree.co.kr객체지향 프로그래밍이 무엇인지, 객체지향 프로그래밍에서 중요한 것은 어떠한 것이고 특성이 무엇이지 등 객체지향에 대해 이해했더라도 객체지향을 잘 지킨 프로그램을 만드는 것은 그 다음의 일이다. 객체지향 프로그래밍은 프로그램의 기능들을 잘게 나눠 객체들에게 책임을 맡긴다. 이러한 객체지향..
다형성이란다형성은 다른 특성인 추상화와 관련있다. 다형성이란 여러가지(poly)의 형태(morphe)를 가지는 성질을 말한다. 상속, 구현 등으로 관계가 형성된 객체들 중 더 구체적인 객체인 하위 객체의 인스턴스는 추상적인 상위 객체의 형태를 지닐 수 있다. 인스턴스의 타입을 추상체로 할당할 수 있다는 것이다. 코드로 예시를 보는 것이 이해가 빠르다. 객체지향의 특성 - 추상화객체지향의 특성 중 하나인 추상화는 상속과 관련이 있다. 객체지향의 특성 - 상속객체지향의 특성 중 상속에 대해 기록해보려한다. 상속은 두 객체 사이에서 정의되는 관계다. 두 객체는 다음jtechtalk.tistory.com 추상화 글에 썼던 로그인 클래스로 예시를 들어보겠다.interface Login { void logi..