전체 글

· 일상기록
모든건 참으면 지나간다. 현실에 최선을 다하자. 현재를 살자. 견디기
▪️EC2 서버에 프로젝트를 배포해 보자 먼저 EC2에 접속해서 아래 명령어를 입력해 깃을 설치한다. sudo yum install git 성공적으로 Git을 설치하고 나면 아래와 같이 설치여부 및 버전을 확인할 수 있다. git --version 다음으로 우리의 프로젝트를 담을 디렉토리를 만들자. app 디렉토리를 만들고, 그 아래에 step1 디렉토리를 만든다. 그리고 해당 디렉토리로 이동한다. mkdir ~/app && mkdir ~/app/step1 cd ~/app/step1 복사한 https 주소를 통해 git c lone을 진행한다. git clone 복사한 주소 이후 프로젝트로 이동해 코드들이 잘 수행되는지 테스트로 검증해보자. chmod +x ./gradlew ./gradlew test ▪..
▪️ AWS에 데이터베이스 환경을 만들어보자 - AWS RDS 여기서는 mariaDB를 쓰는데, 오픈소스이므로 사양대비 가격이 저렴하고,두번째로 Amazon Aurora 교체 용이성 때문에 이를 사용한다. Amazon Aurora는 MySQL와 PostreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스이다. 기존 MYSQL,PostgreSQL보다 3배이상의 성능을 제공한다. 더군다나 AWS에서 직접 엔지니어링 하고 있기때문에, 계속 발전하고 있다. 하지만 Aurora는 최저비용이 월 10만원 이상이기 때문에 필자는 MariaDB를 선택했다. DBMS에서 MariaDB를 선택한다. 프리티어를 선택한다. 스토리지 20으로 설정. 네트워크에서 퍼블릭 액세스를 [예]로 변경한다. ▪️RDS 운영환경에 맞는 ..
▪️EC2 인스턴스 생성하기 클라우드 형태 IaaS(아이아스, 이에스) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해주는 서비스 AWS의 EC2, S3 등 Paas(파스) IaaS에서 한 번 더 추상화 한 서비스 한 번 더 추상화 했기 때문에 많은 기능이 자동화 되어 있다 AWS의 Beanstalk, Heroku(헤로쿠) 등 SaaS(사스) 소프트웨어 서비스 구글 드라이브, 드랍박스 등 EC2 T 시리즈는 다른 서비스와 달리 크레딧이란 일종의 CPU를 사용할 수 있는 포인트 개념이 있다. 인스턴스 크기에 따라 정해진 비율로 CPU 크레딧을 계속 받게 되며, 사용하지 않을 때는 크레딧을 축적하고, 사용할 때 이 크레딧을 사용한다...
✔ 문제 017 내림차순으로 자릿수 정렬하기 문제 바로가기 💨 ⬜ 핵심 아이디어 선택 정렬(selection sort)은 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법이다. 선택 정렬은 구현 방법이 복잡하고, 시간 복잡도도 O(n^2)으로 효율적이지 않아 코딩테스트에서는 많이 사용하지 않는다. 슈도코드 작성하기 str(정렬할 수) A(자릿수별로 구분해 저장한 배열) for(str의 길이만큼 반복하기) { A 배열 저장 -> str.substring 사용하기 } for(i: 0~str의 길이만큼 반복하기){ for(j: i + 1 ~ str의 길이만큼 반복하기) { 현재 범위에서 Max 값 찾기 } 현재 i의 값과 Max값 중 Max 값이 더 크면 swap 수행하기 }..
▪️스프링 시큐리티와 OAuth 2.0 으로 구글 로그인 [사용자 인증정보] 클릭 [사용자 인증 정보 만들기] → OAuth2 클라이언트 ID 클릭 동의 화면 구성 → API 범위 설정(email,profile,openid등...)->저장 OAuth 클라이언트 ID 만들기 화면 → 웹 애플리케이션 → 승인된 리디렉션 URI 등록 ({도메인}/login/oauth2/code/google) src/main/resources/ 디렉토리에 application-oauth2.properties 파일 생성 후 아래 입력 spring.security.oauth2.client.registration.google.client-id=15775082482-moi3t2j4l8167hijdg5ne9k2l61la178.apps...
· 운영체제
"Scheduling: Proportional Share" 이 장에서는 비례(공정) 분배 스케줄러( Proportional share 스케줄링 )를 살펴보겠습니다. 이 스케줄러는 반응 시간이나 반환 시간을 최적화하는 대신, 각 작업이 일정 비율의 CPU 시간을 보장받도록 합니다. 해당 스케줄링을 구현하기 위한 초기 방법은 Lottery Scheduling입니다. 말 그대로 로또 복권처럼 이번엔 어떤 프로세스가 실행될지 추첨하는 방식입니다. 그렇다면 이런 스케줄러를 어떻게 설계할지, 이를 위한 핵심 메커니즘과 효과를 알아봅시다. 로터리 스케줄링의 기반이 되는 매우 기본적인 개념은 티켓입니다. 이는 프로세스(또는 사용자)가 받아야 할 자원의 지분을 뜻합니다.예를 들어보겠습니다 (그림2). 프로세스 A와 B가..
▪️JPA JPA는 서로 지향하는 바가 다른 2개 영역을 중간에서 패러다임 일치를 시켜주기 위한 기술이다. 관계형 데이터베이스는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술 객체지향 프로그래밍 언어는 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술 개발자가 객체지향적으로 프로그래밍을 하면, JPA가 이를 관계형 DB에 맞게 SQL을 대신 생성해서 실행한다. 이로써 개발자는 더는 SQL에 종속적인 개발을 하지 않아도 된다. ▪️Spring Data JPA Spring Data JPA는 구현체들을 좀 더 쉽게 사용하고자 추상화시킨 모듈이다. JPA ← Hibernate ← Spring Data JPA 구현체 교체의 용이성: Hibernate 외에 다른 구현체로 쉽게 교체할 수 있다. 저장소 교체의..
✔ 문제 016 버블 소트 프로그램 1 문제 바로가기 💨 ⬜ 핵심 아이디어 버블 정렬의 swap이 한 번도 일어나지 않은 루프가 언제인지 알아내는 문제이다. swap이 한 번도 일어나지 않았다. == 이미 모든 데이터가 정렬됐다. 로 볼 수 있다. 예를 들어, 10 1 5 2 3 에서 버블 정렬을 시작하면, 1 5 2 3 10 (10 fix) 1 2 3 5 10 (5,10 fix) 다음으론 swap횟수가 0이므로, 이미 모든 숫자(1,2,3)가 정렬 완료 되었음을 알 수 있다. 하지만 N의 범위가 50만이기때문에,버블정렬을 이용하면 N^2 시간초과가 발생한다. 따라서 안쪽 for 문이 몇 번 수행됐는지 구하는 다른 아이디어가 필요하다. 안쪽 for 문이 몇 번 수행됐는지 구하는 다른 아이디어 특정 데이터..
✔ 문제 015 수 정렬하기 1 문제 바로가기 💨 ⬜ 핵심 아이디어 버블 정렬 두 인접한 데이터의 크기를 비교해 정렬 시간복잡도는 O(n^2)으로 다른 정렬 알고리즘보다 속도가 느린편 슈도코드 작성하기 N(정렬할 수 개수) A(정렬할 배열 선언) for(i : 0 ~ N - 1) { for(j : 0 ~ N - 1 - i) { 현재 A 배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 두 수 바꾸기 } } A 배열 출력 JAVA import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] A = n..
고쩡이
고민보다 Go