전체 글
-
MyBatis 쿼리 (Oracle, MySQL)Back-End/SQL 2025. 2. 18. 23:17
쿼리 순서-- 조회 SELECT id, title, contents, count(created_id), created_date FROM board WHERE created_date = #{createdDate} -- created_id 를 기준으로 grouping 하는 나머지 컬럼들 GROUP BY id, title, contents, created_date -- grouping 하는것들의 조건 HAVING count(created_id) > 0 -- id로 내림차순, title 로 오름차순 ORDER BY id DESC, title ASC -- 0번째부터 10개 제한해서 보여줌 (한페이지에 게시글 열개인 첫번..
-
2025년 2월 2째주HM's Dairy/WIL 2025. 2. 8. 02:38
데이터의 이동/처리에 초점Stream : 연속적인 데이터 흐름Buffer : 데이터 임시 저장 후 처리 (시간, 크기, 조건 기반)Reactive Stream : 백프레셔를 통한 데이터 흐름 제어데이터 접근/통신 방식에 초점Iterator : 순차적 데이터 접근Observer : 데이터 변경 알림. 상태 변화 감지와 반응.Publisher-Subscriber : 비동기 데이터 스트림 전달 데이터 스트림 처리 Stream Pattern Reactive Stream Pattern (백프레셔) ..
-
Proxmox 로 홈 서버 구축하기: (3) 외부 접속 허용하기Project/Home Server 2025. 2. 2. 07:54
1. 일단 본인 집의 네트워크 구성이 어떻게 되어있는 지 파악하기아래는 우리집의 네트워크 구성도이다. 외부 아파트 단자 -> 공유기1(메인) -> 공유기2(와이파이) -> 미니PC(홈서버) ↓ ↓ 데스크탑 티비/노트북/폰/아이패드 외부 아파트 단자에서 외부IP 가 할당되어있고 공유기 2개는 사설IP 가 공인IP 로 할당되어있는 이중 NAT 구조로 되어있다. 이럴 경우 브릿지 모드로 바꿔주면 공유기를 거치지 않고 곧바로 외부IP 로 연결이 된다고 하던데 이렇게 구조를 바꾸게 되면 인터넷이 느려진다는 치명적인 단점이 존재했다. 그래서 SK 브로드밴드에 외부IP 를 추가로 할당받을 수 있냐고 문의를 해보..
-
2025년 1월 3째주HM's Dairy/WIL 2025. 1. 19. 02:14
암호화(Encryption) 알고리즘 AES256 (Advanced Encryption Standard) 암호화와 복호화에 같은 키를 사용 (Secret Key 1개)대칭키 (Symmetric Key)데이터를 못 보게 숨기기 위한 목적 (기밀성) 키가 노출되면? → 모든 암호화된 데이터를 복호화할 수 있음→ DB에 저장된 모든 민감정보가 노출될 수 있음 RSA2048 (Rivest-Shamir-Adleman) 암호화와 복호화에 다른 키를 사용비대칭키 (Asymmetric Key)공개키(Public Key)와 개인키(Private Key)가 한 쌍안전하게 키를 교환하고 전자서명을 하기 위한 목적1. 데이터 암호화/복호화 암호화: 공개키(Public Key) 사용 - 누구나 공개키로 암호화 가능 - 공개..
-
Leetcode 14. Longest Common PrefixCoding Test/Problem Solving 2024. 12. 14. 21:21
링크: https://leetcode.com/problems/longest-common-prefix/description/ 질문1특정 인덱스의 문자가 일치한다는 것을 표시하기 위해 for문이 다 돌았을 때 문자를 추가해서 출력할 결과 변수에 넣어주도록 작성했는데 예외가 발생했다. 중간 문자가 불일치하고 다시 일치하는 인덱스일 경우를 생각치 못하여 이 때는 종료하도록 flag를 추가하였다.그런데 예외 케이스를 하나씩 if로 추가해서 break를 거는 게 좋은 코드인지 모르겠다. 답을 알려주지 말고 내가 자연스럽게 과정을 유추할 수 있도록 아주 작은 힌트만 줘. 혹시 내가 접근을 잘못했니?답변1코드가 동작하긴 하지만, 좀 더 단순화할 여지가 있어 보입니다.공통 접두사를 찾는 건데, 첫 번째 문자열을 기준으로..
-
VM에 Docker로 DB 설치Infra/Cloud 2024. 11. 16. 05:18
예전에 오라클 클라우드에서 계정을 만들면 VM을 공짜로 주는 이벤트가 있어서 리전만 바로 할당받아놓았다.이미 설치한걸 지울수는 없으니 가물가물한 기억을 소환... 1. vm 서버 생성 vm 서버 생성 후, 데스크탑이나 노트북에서 xshell로 접속 2. sudo 명령어 설치apt install sudo 3. 패키지 업데이트 및 설치# 패키지 업데이트sudo apt-get update# 패키지 설치sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common 4. docker 설치curl -fsSL https://download.dock..
-
Leetcode 13. Roman to IntegerCoding Test/Problem Solving 2024. 10. 2. 00:01
링크: https://leetcode.com/problems/roman-to-integer/description/ 질문1이 문제를 해결하기 위해 두 가지 방법을 생각했는데, 첫 번째 방법을 택하려고 해. 이유를 설명할게.첫 번째 방법은 문자열을 split한 후, for문으로 각 문자를 순회하며 뒷자리 문자가 앞자리보다 큰지 비교하는 방식이다. 문자열 길이가 최대 15이므로 성능상 문제는 없을 거라고 판단했다.두 번째 방법은 if문 안에 또 if문을 넣어서 M, D, C 순으로 분기하는 방식이다. M이 1000으로 고정되어 있으니까, M 다음에 D가 나오면 다시 M이 나올 가능성은 없다고 가정하고 분기 수를 줄일 수 있어.(여기가 오류) 하지만 코드가 너무 복잡해지고 가독성이 떨어질 것 같아 이 방법은 선..
-
Proxmox 로 홈 서버 구축하기: (2) 유료 라이센스 끄기Project/Home Server 2024. 5. 2. 13:16
apt update해당 명령어를 치고 나면 최초에는 Enterprise 버전으로 설치되기 때문에 유료 구독을 하지 않으면 사용할 수 없게 된다. 발생 에러Hit:1 http://download.proxmox.com/debian/pve bookworm InRelease Err:2 https://enterprise.proxmox.com/debian/ceph-quincy bookworm InRelease 401 Unauthorized우리는 개인적으로 사용하는 것이기 때문에 유료버전을 비활성화 해주도록 하자 grep -r --include="*.list" "enterprise.proxmox.com" /etc/apt/해당 명령어는 엔터프라이즈 설정이 되어있는 파일의 경로를 찾아주는 명령어이다 결과/etc/apt/..