반응형

전체 글 615

[HackerRank] Extra Long Factorials

⭐ 나의 풀이 #!/bin/python3 import math import os import random import re import sys # # Complete the 'extraLongFactorials' function below. # # The function accepts INTEGER n as parameter. # def extraLongFactorials(n): # Write your code here if n < 2 : return 1 else : return n * extraLongFactorials(n-1) if __name__ == '__main__': n = int(input().strip()) print(extraLongFactorials(n)) 기본적인 재귀 호출 구현 문제..

[HackerRank] Forming a Magic Square

Magic Square를 만드는 규칙이 있다. 8 1 6 3 5 7 4 9 2 위는 3*3의 Magic Square이다. 1부터 시작한다. 1의 오른쪽 대각선의 위치에 2를 쓴다. lst[0][1] ➡️ lst[2][2] lst[0][1]의 오른쪽 대각선은 lst[-1][2]이다. lst[-1][2] == lst[2][2] 2의 오른쪽 대각선의 위치에 3을 쓴다. lst[2][2] ➡️ lst[1][0] lst[2][2]의 오른쪽 대각선은 lst[1][3]인데 lst[1][3%3] == lst[1][0] 3의 오른쪽 대각선이 이미 숫자가 있어서 아래에 4를 쓴다. lst[1][0] ➡️ lst[2][0] 위와 같은 과정을 반복 🤗 나의 풀이 #!/bin/python3 import math import o..

Redis

Redis 데이터의 원래 소스보다 더 빠르게 액세스할 수 있는 임시 데이터 저장소 주로 변하지 않는 데이터, 반복적으로 액세스하는 같은 데이터를 캐시에 저장 단순한 key-value 구조 In-memory 데이터 저장소 서버 재시작 시 모든 데이터 유실 복제 기능을 사용해도 실수 발생 시 데이터 복원 불가💀 Redis를 캐시 이외의 용도로 사용한다면 적절한 데이터 백업이 필요 데이터를 영구 저장하는 방법 RDB 바이너리 파일 형태로 저장된다. 저장 당시 메모리에 있는 데이터 그대로를 사진 찍듯이 snapshot 방식으로 저장 자동 👉 redis.conf 파일에서 SAVE 옵션(시간 기준) 수동 👉 BGSAVE 커맨드를 이용해 cli 창에서 수동으로 RDB 파일 저장 SAVE 커맨드는 절대 사용 ❌ AOF..

DB/Redis 2023.05.07

COPY ${JAR_FILE} app.jarWhen using COPY with more than one source file, the destination must be a directory and end with a /

COPY ${JAR_FILE} app.jarWhen using COPY with more than one source file, the destination must be a directory and end with a / 깃헙 액션의 CD 워크플로우를 실행하던 중에 다음과 같은 에러가 떴다. 하나 이상의 source 파일이 있을 시 destination이 {폴더명}/이 되어야 한다는 의미다. build/libs에는 jar 파일이 2개가 있었다. 내가 원하는 건 *-SNAPSHOT.jar뿐이다. FROM openjdk:11 ARG JAR_FILE=./build/libs/*-SNAPSHOT.jar COPY ${JAR_FILE} app.jar EXPOSE 8000 ENTRYPOINT ["java", "-ja..

DevOps/Docker 2023.05.05

[Error] docker endpoint for "default" not found

🖥️ 내 환경 운영 체제는 Window 11 Home Docker Desktop 버전은 4.16.3 Docker Compose 버전은 v2.15.1 docker-compose up 위 명령어를 사용하다가 docker endpoint for "default" not found가 뜨면서 안 된다. 이전에 잘 되었는데 Dockerfile을 이미지로 생성하려고 docker-compose에 코드를 작성한 후 이런 문제가 발생 해결 .docker\contexts\meta\{이상한 문자}의 경로에 meta.json 파일이 있는데 삭제한다. 다시 실행해보면 문제없이 잘 된다. 참고 👇 https://github.com/docker/compose/issues/9956 [BUG] docker endpoint for "de..

DevOps/Docker 2023.05.02

재고시스템으로 알아보는 동시성이슈 해결방법

작업환경 세팅 1. docker 설치 brew install docker brew link docker docker version 2. MySQL 설치 및 실행 docker pull mysql docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql docker ps 만약 docker: no matching manifest for linux/arm64/v8 in the manifest list entries. 에러가 발생한다면, docker pull --platform linux/x86_64 mysql 이 에러는 Mac, Windows를 사용하는 사람끼리 협업할 때 발생하는 문제다. 3. MySQL 데이터베이스 생성 docker ..

DB 2023.04.30

EC2에서 Docker MySQL 컨테이너 사용

1. 인바운드 규칙 추가 EC2 > 보안 그룹 > 보안 그룹 ID 선택 후에 인바운드 규칙 편집 보안 그룹 ID는 인스턴스에서 찾아보면 있다. 2. MySQL 컨테이너 생성 시에 포트 포워딩하기 docker-compose 작성 시에 port를 작성안하니까 컨테이너 생성 시에 위에처럼 포트가 지정된다. 이렇게 하면 외부에서 MySQL에 연결할 수 없다. 컨테이너 실행 시에 -p 3306:3306을 해서 포트 포워딩을 해준다. 이렇게 해야 EC2 내부의 도커 MySQL을 외부에서 연결할 수 있다!!! 3. 원격 접속 허용 이걸 하지 않으면 host가 기본적으로 localhost라서 MySQL을 사용하기 어렵다.🥲 1. MySQL root 계정으로 로그인한다. 2. 사용하려는 계정에 다음과 같이 설정한다. g..

AWS 2023.04.28
반응형