[프로그래머스/level 2] 의상 - 42578
·
코딩 테스트 정복기/프로그래머스
[level 2] 의상 - 42578문제 링크성능 요약메모리: 81.2 MB, 시간: 0.13 ms구분코딩테스트 연습 > 해시채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 09월 26일 00:25:45문제 설명코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다. 종류이름 얼굴동그란 안경, 검정 선글라스상의파란색 티셔츠하의청바지겉옷긴 코트 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를..
[프로그래머스/level 1] 폰켓몬 - 1845
·
코딩 테스트 정복기/프로그래머스
[level 1] 폰켓몬 - 1845문제 링크문제 설명당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번..
암호화 - 단방향 vs 양방향, 대칭키 vs 비대칭키(개인키/공개키), 암호화 알고리즘
·
Computer Science/Network
암호화(Encryption)란?암호기술은 중요한 정보를 읽기 어려운 값으로 변환하여 제 3자가 볼 수 없도록 하는 기술이다. 정보 보안의 핵심 원칙에는 기밀성, 무결성, 인증이 있다.기밀성(Confidentiality) : 허가받은 자만 정보에 접근할 수 있다.무결성(Integrity) : 허가받은 자만 변경해야한다.즉, 무결성은 제 3자에 의한 정보의 변경이 있는지 없는지를 확인하는 기능.인증(Authentication) : 사용자나 객체의 디지털 정체성을 식별한다.암호화란 위의 세가지 원칙중 "기밀성"을 중심으로 하는 기술이다. (그렇다고 다른 원칙들과 무관한 것은 아님)   단방향(One-Way Encryption) vs 양방향(Two-Way Encryption)평문을 암호문으로 (=암호화), 암호..
[프로그래머스/level 3] 이중우선순위큐 - 42628
·
코딩 테스트 정복기/프로그래머스
[level 3] 이중우선순위큐 - 42628문제 링크문제 설명이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다.명령어수신 탑(높이)I 숫자큐에 주어진 숫자를 삽입합니다.D 1큐에서 최댓값을 삭제합니다.D -1큐에서 최솟값을 삭제합니다.이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.제한사항operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다.operations의 원소는 큐가 수행할 연산을 나타냅니다.원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 ..
Nginx - 설치와 conf, default 파일 설정 방법
·
Devops/웹 서버 관리
Nginx란?정적 파일들을 처리하기 위해 사용되는 http serverreverse proxy server 역할. 80번 포트로 들어오는 내용을 다른 포트로 분산시켜주기가 가능함!!비동기 이벤트 구조를 기반으로 동작한다.Event-Driven 방식:서버로 들어오는 connection 들을 Event-Handler를 통해 비동기 방식으로 처리이러한 방식으로 인해 적은 메모리로 서버를 운영할 수 있음.싱글스레드cpu가 관여하지 않는 작업(scker read / wirter, I/O 등)을 진행할 때는 기다리지않고 다른 작업 수행하고, 진행중이라면 작업이 종료되면 이벤트가 발생하면서 그 다음 작업 처리를 시작한다.Apache 는 Thread/Process 방식   Nginx 설치Linux 서버에서 Nginx ..
Github Actions으로 CICD 구축하기 (3) - React 빌드 파일 배포
·
Devops/CICD
Github Secrets 설정GitHub 리포지토리에서 Settings로 이동좌측 메뉴에서 Secrets and variables > Actions를 클릭New repository secret 버튼을 클릭Secrets 추가secret명은 특수문자 포함 불가능workflow에서 secrets. 으로 불러옴 (secrets.DOCKER_REPO)추가해야할 내용들ENV : .env에 들어갈 내용HOST_PROD : EC2 퍼블릭 IPv4 DNSPRIVATE_KEY : EC2 서버 접속 key. (key는 .pem 형식이어야 한다.)workflow 작성on: push: branches: [ "develop", "main"] pull_request: branches: [ "develop", "ma..
Github Actions으로 CICD 구축하기 (2) - Spring boot, Docker
·
Devops/CICD
OS : MacOS Sonoma 14.6.1IDE : IntelliJJava v17Spring Boot v3.3.2-----아래 내용이 전제 된 상태에서 실행한다.1. 배포를 위한 ec2 서버가 실행되어 있음. (Ubuntu 22.04 LTS)2. ec2 서버에 Docker 가 설치되어 있음.    1. Docker 사용 준비1.1 Docker repository 생성Docker hub에 접속하여 repository를 생성한다.  1.2 프로젝트 상위에 Dockerfile 생성- spring boot 프로젝트 폴더 구조- Dockerfile 내용# open jdk 17 버전의 환경을 구성한다.FROM openjdk:17-alpine# build가 될 때 JAR_FILE이라는 변수 명에 build/i..
Github Actions으로 CICD 구축하기 (1) - 시스템 아키텍처와 필요한 개념 정리
·
Devops/CICD
시스템 아키텍처위의 이미지는 이번 프로젝트의 시스템 아키텍처이다. 1. 서버를 하나만 생성한 이유돈을 절약하기 위함이다. AWS에서 서버로 나가는 비용을 절감하기 위해 서버를 하나만 사용하였다. (서버 운영 2개부터는 유료이다💸) 때문에 한 서버에 프론트/백엔드 프로젝트를 배포하였고, nginx로 프록시를 설정하여 접근 포트를 달리 하였다. 2. 백엔드에 도커를 사용하는 이유한 서버로 두개의 프로젝트를 배포하기 위해, 프로젝트 환경이 구별되어야 하는 필요성을 느꼈다. 또, 프로젝트를 진행하며 팀원들 간 개발 환경이 달라 충돌이 일어나는 경우가 있어 도커를 사용하기로 결정하였다. 3. 프론트는 도커를 사용하지 않는 이유돈을 절약하기 위해 프리티어 서버로 생성하였다. 프리티어 서버 성능이 두개의 도커 컨테..