일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- technical debt
- 김태강
- LongestPalindromicSubstring
- 리스트의 리스트
- 동적 프로그래밍
- 알고리즘
- 나는 아마존에서 미래를 다녔다
- Unique Paths
- BFS
- Dynamic Programmin
- Python
- 삼성인 아마조니언 되다
- 와썹맨
- 리트코드
- No Rules Rules
- leetcode
- 기술적 채무
- Envoy
- 파이썬
- 독후감
- 블린이
- 그거봤어?
- mysql #numa #swap #memory
- 아마조니언
- 프로그래머스
- minimum path sum
- list of list
- 트리
- 규칙없음
- 삼성역량테스트
- Today
- Total
목록분류 전체보기 (53)
개발자가 되고 싶은 준개발자
문제 7. Reverse Integer [Easy] Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0. Assume the environment does not allow you to store 64-bit integers (signed or unsigned). Example 1: Input: x = 123 Output: 321 Example 2: Input: x = -123 Output: -321 Example 3: Input: x = 12..
파일시스템 데이터베이스가 등장하기 전에는 파일 시스템으로 데이터를 관리했음 파일 시스템의 한계 데이터 redundancy, inconsistency multiple file format, duplication of information in different files 여러 사용자가 concurrrent access하면 consistency가 지켜지기 어려움 데이터 접근의 어려움: 데이터 접근하려고 새 프로그램을 작성해야 함 연동의 어려움: 프로그램 코드에 제약 조건을 추가해야 하고, 새 제약 조건을 추가하거나 변경하는 것이 어려움 업데이트 시 원자성(atomicity)가 안 지켜짐 권한 관리: 파일 권한 관리는 되나, 데이터 레벨 권한 관리는 안 됨 Database Language Data Defini..
서비스 배포 4대 주요 배포 패턴의 작동 원리와 장단점을 비교 언어에 특정한 패키징 포맷 (Language Specific Packaging) Java의 경우 전체 프로젝트를 war 파일로 만들어 Tomcat 등의 웹 컨테이너를 통해 배포 장점 배포가 빠름 네트워크를 통해 복사하는 양이 적음 서비스 시동 시간도 짧음 리소스를 효율적으로 활용할 수 있음 단점 기술 스택을 캡슐화할 수 없음 서비스별로 런타임 버전이 정해져 있음 (자바 웹 어플리케이션-실행 가능한 아파치 톰캣, JDK) 런타임이란? 소프트웨어 프로그램을 실행할 환경 클래스 파일을 로드하고 메모리 및 기타 시스템 리소스에 대한 액세스를 확보 예) JRE(Java Runtime Environment): 자바 프로그램을 위한 일종의 메타 운영체제 ..
개념 프로세스: 실행 중인 프로그램 (메모리에 올라와 실행되고 있는 프로그램의 인스턴스) dual-core는 2개의 프로세스까지 동시에 돌릴 수 있음! 스레드: 프로세스의 작업 실행 단위 "Threads let us define a set of tasks that run concurrently while the code for each task is sequential. Each thread behaves as if it has its own dedicated processor" "A thread is a single execution sequence that represents a separately schedulable task" 실행 방식 비교 프로세스 컨텍스트 스위치: CPU 스케줄러가 인터럽트 ..
1 이벤트 소싱 응용 비즈니스 로직 개발 이벤트 소싱이란? 데이터 저장 방식 중 하나로 발생한 이벤트를 저장하는 기법. 이벤트를 위주로 비즈니스 로직을 구현하고, 애그리거트를 DB에 일련의 이벤트로 저장하는 기법. 각 이벤트는 애그리커트의 상태 변화를 나타냄. (애그리거트는 상태가 바뀔 때마다 반드시 이벤트를 발생시킴.) 에그리거트: DDD(domain-driven design)에 기반한 설계에서 하나의 도메인에서 필요한 객체들을 하나로 모아놓은 것. 하나의 트랜잭션에서는 하나의 애그리거트만 업데이트. 이벤트 저장소에 해당 이벤트를 순차적으로 저장해서 관리. 이벤트의 최종 결과값이 아닌 전체 순서를 모두 저장하여 관리. 이벤트 소싱 실사용 예시) 버전 관리 시스템 변경 내역만 저장 지금 상태를 볼때는 변..
문제 flask(백엔드)+react(프론트엔드)로 된 application에서 파일을 업로드 할 때 백엔드로 요청이 가지 않는 문제가 발생 백엔드 서버에서 보이는 에러 메세지: Access to XMLHttpRequest at '주소A' from origin '주소B' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. 해결 방법 친절하지 않은 에러 메시지 덕에 어디가 문제인지 찾는지 오래 걸렸다. 그래도 에러를 찾는 데에 도움이 되었던 것은 nginx 설정이 되지 않은 로컬 환경에서는 해당 에러가 발생하지 않지만, nginx 설정이 되어 있는 배포 환경에서 ..
문제 Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and qas descendants (where we allow a node to be a descendant of itself).” BST가 주어질 때 가장 낮은 공통의 조상을 찾아라. 코드 문제 풀면서 주의 해야 했던 사항은 모든 노드가 uni..
문제 Given the root of a binary search tree, and an integer k, return the kth (1-indexed) smallest element in the tree. BST가 주어졌을 때 K번째로 작은 수를 찾아라. 코드 BST 문제의 경우 우선 순회를 어떤 식으로 할지 정해야 한다. 순회의 방식에는 inorder(left->root->right), postorder(left->rightt->root), preorder(root->left->right) 세가지의 경우가 있다. 이 문제에서는 K번째 수를 찾으라 했으니 순회를 했을때 정렬이 되는 방법을 택하는 게 좋을 듯 하다. 따라서 inorder를 택했다. # Definition for a binary tre..
문제 트리가 주어졌을 때, 트리가 Binary Search Tree인지 판별하라 코드 (Naive 버전) 트리가 BST인지를 판별하기 위해서는 1) 왼쪽 subtree, 오른쪽 subtree가 BST여야 하며, 2) root의 왼쪽 subtree에 있는 값들은 root보다 모두 작아야 하며, root의 오른쪽 subtree에 있는 값들은 root보다 모두 커야 한다. (재귀적으로 바닥까지 모든 subtree가) 따라서 직관적으로 tree를 모두 traverse하면서 이를 확인하는 코드를 짰다. # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = No..
* 실습에는 쿠버네티스 기능을 가상으로 테스트해볼 수 있는 환경인 katacoda(www.katacoda.com/courses/kubernetes/playground)를 이용하였음 * 실습 코드는 깃헙으로부터. git clone https://github.com/Jpub/15_DandK cd step15 클러스터 가상화 네임스페이스를 사용하여 k8s 클러스터를 논리적으로 분할하는 기능 오토스케일 수평 파드 오토스케일러 (Horizontal Pod Autoscaler, HPA) 파드 수를 부하에 맞게 자동으로 조절하는 기능 CPU의 평균 사용률과 목표 사용률이 일치하도록 레플리카 수를 조절 스케일 업은 이전 동작에서 3분 뒤에 발동. 스케일 다운은 5분 뒤에 발동. 클러스터 오토스케일러 (Cluster A..