개발
-
[Hash Table]개발/자료구조 2022. 10. 5. 14:12
A hash table (often called a hash map) is a data structure that maps keys to values. Hash tables combine lookup, insert, and delete operations in an efficient way. The key is sent to a hash function that performs arithmetic operations on it. The result (called the hash value or hash) is an index of the key-value pair. Let a hash function H(x) maps the value at the index x%10 in an Array. For exa..
-
[Greedy]개발/알고리즘 2022. 9. 30. 12:29
Greedy Algorithms work step-by-step, and always choose the steps which provide immediate profit/benefit. It chooses the “locally optimal solution”, without thinking about future consequences. Greedy algorithms may not always lead to the optimal global solution, because it does not consider the entire data. The choice made by the greedy approach does not consider future data and choices. In some ..
-
[CDN]개발/인프라 2022. 9. 14. 14:36
Content Delivery Network cdn이란? 컨텐츠를 캐싱하는 프록시 서버의 분산 네트워크 (컨텐츠 전송 네트워크 또는 배포 네트워크)를 의미합니다. 사용자가 웹사이트를 방문할 때 서버의 데이터는 인터넷을 통해 이동하는데, 서버가 사용자와 멀리 떨어져 있는 경우 이미지 같은 대용량 파일을 로드하는데 시간이 오래 걸립니다. CDN의 목적은 물리적 거리를 줄여주어 퍼포먼스와 사용자경험을 향상시키기 위함입니다. cdn을 사용하면서 얻을수 있는 장점 1. 사이트 퍼포먼스 향상 예를 들어 AWS 서울 리전에 사이트가 호스트되어 있다고 가정하자, 서울에서 사이트에 접속하는 사용자는 지연시간 없이 접속할 것입니다. 하지만 만약 뉴욕에 있는 사용자가 접속한다면, 데이터를 가져오는데 더 많은 시간이 소요될 ..
-
[디자인패턴] Singleton개발 2022. 8. 4. 12:13
싱글턴 (Singleton) A Singleton only allows for a single instantiation, but many instances of the same object. The Singleton restricts clients from creating multiple objects, after the first object created, it will return instances of itself. 인스턴스가 하나만 생성되는것을 보장하고 해당 인스턴스에 글로벌하게 접근할수 있는 패턴을 뜻합니다. - 하나의 인스턴스만 생성 - 어디서나 접근 가능한 클래스 메서드 - 클래스 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 제공 사용하는 인스턴스를 하나만 생성하여 관리의 집중화를 ..
-
[DNS]개발/네트워크 2022. 7. 30. 00:22
DNS : Domain Name System DNS는 사용자가 입력한 URL을 IP 주소로 변환합니다. 우리가 접속하는 홈페이지를 접속할때 해당 서버의 IP주소가 아닌 홈페이지의 도메인을 통해 접속합니다. 티스토리의 IP 주소는 121.53.105.234입니다. 우리는 티스토리에 접속하기 위해 www.tistory.com을 입력하여 접속합니다. 1. 각 루트 DNS 서버는 최상위 (top-level) DNS 서버의 IP 주소 리스트를 갖고 있습니다. * 루트의 top-level 도메인은 크게 Generic Top Level Domain (일반최상위도메인 => .com, .net ... ) 과 Country Code Top Level Domain (국가최상위도메인 => .kr, .jp ... ) 두가지로..
-
[Git] 여러 개발자와 협업을 하는 상황에서 생길수 있는 rebase 이슈개발 2022. 7. 29. 00:13
로컬 브랜치에서 작업을 하다가 master 브랜치로 배포가 나가면 깃 히스토리를 깔끔하게 유지하고싶어서 merge보다는 rebase를 자주 사용하는데, 아직까지는 프로젝트 개발이 겹치지않아서 다른사람들 코드랑 충돌이 난 적이 없었다. 그래서 찾아보았다. 코드 리베이스 후 생길수 있는 문제들을. 1) 가장 흔한 문제는 코드 conflict가 일어나는 것이다. 충돌을 해결하고 git rebase --continue 명령어를 실행하여 리베이스를 진행하거나 git rebase --about 으로 리베이스를 중단해야한다. 충돌을 해결 한 후 리베이스 진행했는데 내 로컬의 작업사항들이 날라갔다면, git reflog 를 통해 복원할 수있다. 2) 두번째로 생길수 있는 문제는 만약 어떤 개발자가 개발한 피쳐 브랜치를..
-
[LeetCode] rotate-image (medium / javascript)개발/알고리즘 2022. 6. 30. 12:50
/** * @param {number[][]} matrix * @return {void} Do not return anything, modify matrix in-place instead. */ const rotate = function(matrix) { let answer = []; const n = matrix.length - 1; let l = 0; while (l -1; i--) { inner.push(matrix[i][l]); } matrix.push(inner); l++ } for(i=0; i
-
깃허브 액션개발 2022. 6. 30. 00:11
Github Actions github 내의 이벤트가 발생하면 어떤 동작을 실행하게 되는 도구입니다. Events, Workflows, Jobs, Acitons, Runners Using Events to trigger workflows 워크플로우에 트리거를 발생시킬 이벤트를 명시하기 위해 on 키워드를 사용합니다. 사용 가능한 이벤트들은 fork, push, pull_request 등이 있으며 더 많은 이벤트들을 공식문서에서 확인할 수 있습니다. 기본적인 사용 방법은 on : push 처럼 한가지의 이벤트를 감지해서 workflow를 동작하게 하는 것 입니다. 아무 브랜치에 Push 가 발생할때마다 실행됩니다. 두가지 이상의 이벤트를 감지할 수도 있습니다. on : [push, fork] 더 자세한 사..