완주하지 못한 선수
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(participant, completion): hash_dict={} sumHash=0 for p in participant: hash_dict[hash(p)]=p sumHash+=hash(p) for c in completion: sumHash-=hash(c) return hash_dict[sumHash] 위와 같이 간단히 풀 수 있지만 해시..
[JAVA / SPRING BOOT] 백엔드 서버 CI / CD 구축 with Github actions, EC2, Code Deploy
·
AWS
CI란? 지속적 통합(Continuous Integration)은 자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경 사항을 중앙 리포지토리에 정기적으로 병합하는 DevOps 소프트웨어 개발 방식입니다. 지속적 통합은 소프트웨어 릴리스 프로세스 중 빌드 또는 통합 단계를 주로 가리키며, 자동화 구성 요소(예: CI 또는 빌드 서비스)와 문화적 구성 요소(예: 빈번하게 통합하도록 학습) 모두를 포함합니다. 지속적 통합의 핵심 목표는 버그를 신속하게 찾아 해결하고, 소프트웨어 품질을 개선하고, 새로운 소프트웨어 업데이트를 검증 및 릴리스하는 데 걸리는 시간을 단축하는 것입니다. 대표적인 서비스 AWS CodeBuild 만약 CI없이 그냥 배포했다가 빌드 에러가 발생한다면...? 테스트 한 번도 안해보..
[Postgresql] 외래키 참조 테이블 조회 방법
·
DB
주어진 테이블이 참조되는 테이블인 경우의 외래 키 관계를 찾는 법 SELECT CCU.table_name AS search_table_name, CCU.column_name AS search_column_name, KCU.table_name AS foreign_table_name, KCU.column_name AS foreign_column_name, KCU.constraint_name AS foreign_constraint_name FROM information_schema.table_constraints AS TC JOIN information_schema.key_column_usage AS KCU ON TC.constraint_name = KCU.constraint_name JOIN informat..
EC2 ssh 연결이 안 된다면? (key pair) "Permission denied (publickey)", "Authentication failed, permission denied"
·
AWS
서론 먼저, EC2에 인스턴스를 배포 후 로컬 터미널로 접속을 하고자하였으나 지속적으로 오류가 발생하였고, 구글링을 해봐도 해결 방법을 여러 차례 시도해봐도 접속이 되지 않았었다. 단, AWS 콘솔에서 직접 EC2 Connect로 접속 시 정상적으로 접속이 가능한 상황이었다. 따라서 ssh 연결 시 ec2의 키가 올바르지 않게 구성이 되어있는지 확인해보고자 하였고 이를 통해 해결할 수 있었다. 해결 방법 로컬 터미널에서 ec2의 pem키가 있는 경로로 이동 후 아래 명령어를 실행시킨다. ssh-keygen -f tigerbk.pem -y 그 다음 현재 EC2의 키 파일을 확인하여야한다. 1. AWS 콘솔 접속 2. 인스턴스 선택 3. Connect -> EC2 Connect를 통해 접속한다. cat ~/..
폴더 구조 DB 스키마 설계
·
DB
폴더 구조 DB 스키마 예시 목록 Closure Table Folders: folder_id folder_name FolderRelationships: ancestor_id descendant_id depth 장점 참조 완결성 ancestor_id, descendant_id를 통해 실제 노드의 id를 참조 서브트리 사용 용이 깊이에 따른 성능 문제 트리 깊이가 늘어나도 일관된 성능 유지 가능 단점 공간 복잡도 증가 노드 간 관계를 저장하기에 데이터가 늘어남에 따라 공간 복잡도 증가 데이터 양 증가 관계 데이터가 O(n²) Closure Table - Store Hierarchical Data Seamlessly | PostgreSQL Path Enumeration 테이블명: Folders 필드명: fol..
DB PK UUID VS auto increment(serial)
·
DB
UUID vs INT ❓ PK를 INT로 해야할지 UUID로 해야할지? 먼저, INT의 범위는 2,147,483,647(4byte)까지 가능하다. 다만 추후 장기적으로 보았을 때 UUID나 nano id를 사용하는 것이 나을지 의문이다. UUID 장점 독립적이다. 어떠한 환경에서도 uuid 생성 함수 등을 이용해 사용이 가능하다. 보안상 안전하다. int의 경우 path로 노출될 때 정보가 쉽게 파악가능해지게 된다. 경쟁사에서 고객 수 파악 크롤링 인젝션 공격 취약 단점 길어서 상대적으로 성능 저하 저장공간을 많이 차지한다. 사람이 보기 힘들다. 정렬이 불가능하다. INT 장점 사람이 파악하기 쉽다. 상대적으로 빠르고 가볍다. 단점 분산 시스템에서 부적합 서버 A, 서버 B가 나뉘었을 때 서버 A에 있는..