전체 글 165

[BOJ#15650] N과 M (2) 근데 이제

재활을곁들인 . . 문제자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열고른 수열은 오름차순이어야 한다.입력첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다. 1. 옛날에 풀었던 코드주석은 많지만 이해했던건지 모르겠다. global ans를 쓴거나 코드를 길게쓴거는 이해되는데 매개변수 1은 왜쓴거지싶다.# N까지의 자연수, 중복없이 M개N, M = map(int, input().s..

알고리즘/백준 2026.01.20

AWS EC2 배포 가이드 정리

EC2 (Elastic Compute Cloud)ec2는 하나의 컴퓨터를 의미한다. 서버를 배포하기 위해선 컴퓨터가 필요 > but. 내 컴퓨터로 서버를 배포하면 24시간 동안 켜놔야하고 보안적 위험도 있기 때문에 AWS EC2라는 컴퓨터를 빌려서 사용한다. (로깅, 오토스케일링, 로드밸런싱 등의 부가기능은 덤~)현업?백엔드서버 배포는 주로 EC2에 서버를 배포에서 사용한다.프론트엔드?프론트 배포할때도 EC2를 사용할 수 있지만, 주로 Vercel, netilfy, AWS S3를 사용해서 배포한다.처음해야되는 것리전(Region) 선택하기인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미.리전의 특징1. 각 리전은 고유한 이름(고유한 값)을 갖고있다.2. 리전을 선택하는 기준은 애플리케이션의 주..

개발/AWS 2025.11.30

[#1 Node] 알아둘 JavaScript 정리

1. 호출스택- Anonymous는 가상의 전역 컨텍스트- 함수 호출 순서대로 쌓이고 역순으로 실행됨- 함수 실행이 완료되면 스택에서 빠짐- LIFO 구조라서 스택이라고 불림 호출 스택 / 백그라운드 / 테스크 큐 / 이벤트 루프 / 콘솔 / 메모리 구조를 이해 해야함> 예제function oneMore() { console.log('one more');}function run() { console.log('run run'); setTimeout(() => { console.log('wow'); }, 0) new Promise((resolve) => { resolve('hi'); }) .then(console.log); oneMore();}setTimeout(run, 5000);..

FE/JavaScript 2025.07.27

[#0 Node] 기초개념

1. 노드의 정의Node.js는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다.(런타임이란? > 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상 머신의 상태)노드는 서버의 역할도 수행할 수 있는 자바스크립트 런타임으로 자바스크립트로 작성된 서버를 실행할 수 있도 http/https/http2 모듈을 제공 > 노드 외의 다른 자바스크립트 런타임으로는 크롬, 파이어폭스 같은 브라우저가 있음> 노드는 V8과 libuv를 내부적으로 포함한다.- V8 엔진: 오픈소스 자바스킄립트 엔진 -> 속도문제 개선- libuv: 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리 2. 이벤트 기반> 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식. 대부분의 프로그램은 이벤..

FE/JavaScript 2025.07.26

#5 Docker 환경에서 Spring Boot 백엔드 실행

# 목적1. 로컬 개발 환경에서 Docker compose를 활용해 백엔드 서버를 컨테이너로 실행하고, 프론트엔드(Vite 기반)와의 API통신이 원활하게 이루어지는지 검증하기2. 추후 배포 환경에서도 일관된 백엔드 동작을 보장하기 위해 Docker 기반 실행 과정을 경험하고 문서화 하려고함 # 진행1. 전달받은 도커 설정 파일 `application.yml`을 백엔드 프로젝트의 `src/main/resources` 디렉토리에 추가2. docker network 명령어로 컨테이너 간 통신을 위한 사용자 정의 브리지 네트워크 생성3. gradle로 프로젝트 빌드(테스트실행 x)4. docker compose up5. mysql의 테이블에 dummy admin 계정을 수동으로 INSERT6. 프론트 프로젝트..

개발/Docker 2025.05.05

#4 Docker Compose

# Docker Compose ?여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성. 하나의 묶음으로 관리할 수 있게 도와주는 툴1. 여러 개의 컨테이너를 관리하는데 용이여러개의 컨테이너로 이루어진 복잡한 애플리케이션을 한 번에 관리할 수 있게 해준다.여러 컨테이너를 하나의 환경에서 실행하고 관리하는데 도움이된다.2. 복잡한 명령어로 실행시키던 걸 간소화 시킬 수 있음docker run -e MYSQL_ROOT_PASSWORD=pwsecret -d -p 3306:3306 -v 'C:/Users/zinooing/Downloads/docker-mysql/mysql_data:/var/lib/mysql' mysql위와같은 복잡한 명령어를 docker compose up 로 간소화. # 도커 컴포즈..

개발/Docker 2025.05.04

#3 Dockerfile

# Dockerfile?Docker 이미지를 만들게 해주는 파일. # FROM : 베이스 이미지 생성FROM [이미지명]FROM [이미지명] : [태그명]베이스 이미지를 생성하는 역할. Docker컨테이너를 특정 초기 이미지(베이스이미지)를 기반으로 추가적인 세팅을 할 수 있다. # 빌드 명령어docker build -t [생성할 이미지이름 설정:태그] [Dockerfile 경로]ex) docker build -t my-app:v1 .-t : 태그의 줄임말로 버전관리나 목적구분에 사용. # 종료된 컨테이너에 들어가서 디버깅하고 싶을 때1. docker logs 를 활용해 컨테이너 로그 확인하기2. docker exec -it 를 활용해 컨테이너 내부에 직접 들어가보기docker exec -it 는 실행중..

개발/Docker 2025.05.04

#2 Docker Volume

# Docker Volume도커 컨테이너에 MySQL을 설치하고 작업하던 중, 컨테이너를 새로 만들면 이전에 작업한 데이터베이스가 사라지는 문제가 생길 수 있다. 이러한 문제를 방지하기 위해 Docker Volume 이라는 기능을 사용하면, 데이터 파일을 호스트 컴퓨터의 볼륨에 저장하여 컨테이너가 삭제되거나 재생성되어도 기존 데이터를 유지할 수 있다. # Docker Volume 생성docker run -e MYSQL_ROOT_PASSWORD=pwsecret -d -p 3306:3306 -v 'C:/Users/zinooing/Downloads/docker-mysql/mysql_data:/var/lib/mysql' mysql┌────────────────────────────┐│ Host O..

개발/Docker 2025.05.03

#1 Docker CLI

# 도커 이미지는 어디서 다운받는것인지?https://hub.docker.com/ Docker Hub hub.docker.com깃헙처럼 이미지를 저장, 다운받을 수 있는 저장소 역할을 하는 서비스 # 이미지 다운로드docker pull nginx (아무것도 안붙이면 자동으로 latest버전)docker pull nginx:latest (뒤에 :땡땡 붙이고 다운받을 버전을 정할 수 있다) # 이미지 다운로드 조회docker image ls # 이미지 삭제docker image rm (IMAGE ID 컨테이너에서 사용하고 있지 않은 이미지만 삭제 가능 # 이미지 삭제(강제)docker image rm -f (IMAGE ID)중단된 컨테이너에서 사용하고 있는 이미지 삭제 가능 # 이미지 삭제(여러개 한번에)d..

개발/Docker 2025.05.02

#0 Docker

# Why?도커를 사용해야할 일이 생겼다 ..서버가 없는 상태에서 개발할때, 도커를 알고 있어야 백엔드의 개발환경을 받고 API요청이 잘 처리되는지 확인할 수 있기 때문이다.그동안 배포된 상태에서 개발한 경험만 있었는데, 아닌 상태에서 개발을 진행해보고 나서야 얼마나 편한 상황이었는지 깨달았다. 도커를 사용하는 이유는 이식성 때문이다. 백엔드의 개발환경을 받아서 API요청이 제대로 가고있는지 확인하려고 한다.이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특징 # IP와 Port 의 개념## IP는 네트워크상에서 특정 컴퓨터의 주소를 가리킨다. 각 서비스는 IP를 갖고있음.ex) 13.250.15.132 ## Port한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소이다.e..

개발/Docker 2025.05.02
반응형