그리디 알고리즘이란? 그리디 알고리즘은 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘이다. 쉽게 말해 매 선택에서 지금 이 순간 당장 최적인 답을 선택하여 적합한 결과를 도출하자 하여 전체적인 최적 해를 찾는 알고리
Spring에서 코드를 작성할 때 @Transaction을 자주 사용하곤했는데 DB에 무결성, 안전성을 보장해준다기에 사용하곤 했다. 하지만 어떤식으로 보장해주는지 잘 알지 못하는 것은 재대로 Spring을 사용하는 것이 아니기에 이번 기회에 정리해보려고한다. Spri
Blocking: 자신의 작업을 진행하다가 다른 주체에 어떠한 요청을 했을 때 다른 주체에 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것Non-Blocking: 다른 주체의 작업 완료와 관련없이 자신의 작업을 하는 것 위 둘의 가장 큰 차이점은 다른 주체가
HTTP란? HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 통신 규칙 세트 또는 프로토콜이다. Ex) 사용자가 웹 사이트에 방문해서 웹 브라우저를 통해 웹서버에 HTTP 요청을
행위 패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로 총 11개의 패턴이 있다.행위 패턴은 하나의 객체로 수행할 수 없는 작업을 여러 객체로 분배하면서 결합도를 최소화 할 수 있도록 도와준다.결론적으로 행위 패턴은 코드의 유지보수
디자인 패턴이란? 공통적으로 발생하는 문제에 대해서 재사용 가능한 해결책을 의미한다. 다른 상황에 맞게 사용될 수 있는 문제를 해결하는데 사용되는 템플릿임 디자인 패턴을 학습하면 확장성이 높고 유연한 개발이 가능해진다. GOF의 디자인 패턴은 3가지로 나뉜다 생성
UntitledDB 종류 선택데이터베이스 생성 방식 선택: 표준 생성MysqlDB 설정 입력템플릿: 프리 티어DB 인스턴스 식별자에 원하는 데이터베이스 이름을 입력하고 마스터 사용자 이름과 마스터 암호 입력데이터베이스 이름, 마스터 이름, 비밀번호는 실제로 DB에 접근
UntitledAMI: Ubuntu 선택키페어키페어명은 내가원하는 이름키페어 유형은 RSA프라이빗 키파일 형식은 .pem다운 받은 후 다시 다운 불가하기 때문에 잘 저장해두기 네트워크 설정보안 그룹 선택 후 내 IP에서 SSH 트래픽 허용 (NACL단에서 설정하는 것
📌 Throw: 예외 발생시키기 키워드 throw를 사용해서 프로그래머가 고의로 예외를 발생시킬 수 있다. 방법 1 . 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든다. 2 . 키워드 throw를 이용해서 예외를 발생시킨다. 객체를 만드는 것
과거 대학 입학 날짜 2016년 3월 2일 ~ 졸업 날인 2024년 2월 20일 사이 기간을 알아 보고 싶다면 어떻게 해야 할까? 두 날짜 사이의 차이를 계산을 도와주는 Period.between() 을 사용하여 알 수 있다. LocalDateTime LocalD
프로그램의 흐름을 직접 제어하는 것이 아니라 외부에 제어권을 넘겨 관리하게 하는 것을 제어의 역전이라고한다.상세히 말하면 객체 생성의 관리 및 책임을 외부에서 한다면 제어권을 넘기게 되어 제어의 역전이 발생한 것이다.프레임워크는 제어의 역전 개념이 적용된 대표적인 기술
📌 예외 처리란? 프로그램이 예기치 못하게 종료될 수 있는 오류는 에러와 예외로 나뉘고 예외는 프로그래머가 미리 처리할 수 있다고 앞 포스팅 글에서 정리했었다. 이 개념을 바탕으로 예외처리에 대한 정의는 다음과 같다. > 예외처리 : 프로그램 실행 시 발생할 수
프로그램이 실행 중 오작동 하거나 비정상적으로 종료하게 하는 원인을 프로그램 에러, 오류 라고한다. 에러는 발생 시점에 따라 컴파일 에러, 런타임 에러로 나눌 수 있다. 이외에도 논리적 에러가 있는데 컴파일도 잘되고 실행도 잘되는데 의도와 다르게 동작하는 것을
📌 자바와 JVM Java는 JVM이라는 가상 머신을 통해 OS 종류와는 관계 없이 구동 환경만 적합하면 코드를 실행할 수 있다. 따라서 Java의 특징적인 컴파일 환경, JVM의 구조 등을 정리하려 한다. 📌 JVM을 사용하지 않는다면? C언어를 예시로 한번
📌 정규화란? 테이블 간/내에 중복성 제거를 위해 관계를 분해하는것 정규화를 하는 목적은 데이터 중복을 제거하고, 효율성을 향상시키며, 데이터 무결성을 보장하기 위함이다. 📌 제 1 정규화 데이터베이스의 각 컬럼은 하나의 데이터만 가지도록 하는 과정이다. 즉
* !! 글을 읽기 전 필독 !!* DBMS 마다 격리 수준에 대한 내용이 다를 수 있으니 보다 정확하게 알기 위해서는 공식 문서를 확인해야 한다. 필자는 MySQL 에서 제공하는 격리수준을 기준으로 하였다. 참고로 MySQL의 기본 격리수준은 Repeatable Re
📌 TRANSACTION TRANSACTION DB에 요청시 한 스텝에서 모두 처리되어야 하는 SQL 요청을 하나로 묶은 단위다. 하나의 SQL 이라도 처리되지 않으면 요청 전 상태로 RollBack되는 것이 특징. 트랜잭션 내 SQL문들이 모두 성공하는 경우 Co
데이터 저장소 CSV 혹은 EXCEL 같은 다양한 데이터 형태로 저장되어있는 저장소DB(데이터 저장소)기능 + 엔진(데이터를 정의 및 조작하는 기능)을 가진 응용 프로그램DB Management System 으로써 위 DB 에 대한 CRUD 엔진, 관리 등 제공DBMS
AMI는 AMI 커뮤니티에서 \*\*amazon/amzn-ami-vpc-nat-2018.03.0.20230807.0-x86_64-ebs 을 검색해서 넣어준다.\*\*AWS 공식 NAT 인스턴스 AMI (Pre-configured Amazon Linux AMI) 는 이제
\*\*Local-to-bastion.pem\*\*이라는 Private key를 생성해준다.Local에 다운로드 되어있는 것을 확인했다.Public Subnet에 Bastion이라는 인스탄스를 만들어준다.주의할 점은 INBOUND 규칙에 SSH 프로토콜과 22Port