'분류 전체보기' 카테고리의 글 목록 (28 Page)
본문 바로가기

분류 전체보기

(243)
[SOLID] SRP: The Single-Responsibility Principle * 이 글은 Agile Software Development, Principles, Patterns, and Practices - Robert Martin 책 내용을 번역 및 요약하여 작성하였습니다. SRP: The Single-Responsibility Principle 왜 책임을 별도의 클래스로 분리하는 것이 중요한가요? 각 책임은 변경의 축이기 때문입니다. 요구 사항이 변경되면 그 변경은 클래스 간의 책임 변경을 통해 나타날 것입니다. 하나의 클래스가 두 개 이상의 책임을 가정하면 해당 클래스가 변경해야 하는 이유가 두 개 이상 발생할 것입니다. 하나의 클래스가 두 개 이상의 책임을 갖는 경우, 이러한 책임들은 서로 결합됩니다. 이때 한 책임에 대한 변경 사항은 클래스가 다른 책임을 충족하는 능력을..
[Tip] Orbstack, docker-desktop를 대체하는 가볍고 빠른 가상 머신 실행 소프트웨어 OrbStack is the fast, light, and easy way to run Docker containers and Linux machines on macOS. It's a supercharged WSL and Docker Desktop alternative, all in one easy-to-use app. OrbStack? OrbStack은 macOS에서 Docker container와 Linux machines를 실행할 수 있는 소프트웨어입니다. Docker Desktop, Colima와 같은 가상 머신 실행 소프트웨어와 유사합니다. OrbStack은 시스템 자원을 효율적으로 사용하는 것을 핵심 원칙으로 하고있습니다. OrbStack은 가벼우며 사용자가 사용하기 편하게 설계되었으며, 사용..
[DesignPattern] Agile Development * 이 글은 Agile Software Development, Principles, Patterns, and Practices - Robert Martin 책 내용을 번역 및 요약하여 작성하였습니다. The Agile Alliance 소프트웨어 개발 프로젝트에서 명확한 지침이나 효과적인 접근 방식의 부재로 인해 예측 불가능성, 반복된 오류 및 낭비가 발생합니다. 일정 지연, 예산 증가 및 저품질로 인해 클라이언트는 실망하고, 개발자는 더 많은 노력을 기울일수록 점점 나쁜 소프트웨어를 생산하게 됩니다. 소프트웨어 개발 프로젝트는 몇 가지 제한사항과 결과물만으로는 완벽하다고 볼 수 없습니다. 오류가 계속 발생하면 그 오류를 진단하고 앞으로의 오류를 방지하기 위해 더 많은 제한사항과 결과물을 도입합니다. 많은..
[BFS] 프로그래머스 level 2 게임 맵 최단거리 python 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS란? BFS (Breadth-First Search, 너비 우선 탐색)는 그래프나 트리와 같은 자료 구조에서 사용되는 탐색 알고리즘 BFS는 큐를 사용하기 때문에 먼저 발견한 노드를 먼저 탐색하고, 더 멀리 있는 노드는 나중에 탐색 너비를 우선으로 시작 노드에서 가까운 노드부터 발견하고 탐색하기 때문에 최단 경로를 찾는 데 유용하며, 그래프의 연결 요소를 찾는 데도 적합 문제 접근 최단 거리를..
[Tip] mac에서 마우스를 트랙패드 처럼 사용하기! Mac Mouse Fix 이 글에서 소개해 드릴 내용은 Mac Mouse Fix 라는 Mac에서 사용 가능한 유틸리티 소프트웨어 입니다. 이 글은 Mac Mouse Fix 2.0 버전 기준으로 작성되었습니다. 1. Mac Mouse Fix? 트랙패드에서 가능했던 스페이스간 이동, 미션 컨트롤 실행, 데스크탑 보기, 퀵 룩 실행 등을 마우스로 할 수 있게 해주는 유틸리티 부드럽고 Responsive한 스크롤 지원 Objective-C 오픈소스(https://github.com/noah-nuebling/mac-mouse-fix) 예를 들어, 다음과 같이 동작합니다. (마우스로 조작한 것 입니다!) 2. 설치 방법 https://mousefix.org/ Mac Mouse Fix - A simple way to make your mou..
인스타그램이 오직 3명의 엔지니어로 1400만 사용자를 확보한 방법 원문 https://engineercodex.substack.com/p/how-instagram-scaled-to-14-million How Instagram scaled to 14 million users with only 3 engineers Instagram's guiding principles and tech stack explained simply engineercodex.substack.com 2010/10 부터 2011/11 까지 약 1년간 0명에서 1400만명 사용자에 도달. 엔지니어는 단 3명 3가지 원칙을 따랐음 간단하게 유지할 것 (Keep things very simple.) 바퀴를 재발명하지 말 것 (Don’t re-invent the wheel.) 가능하면 입증된 견고한 기술을 ..
[Heap] 프로그래머스 level 2 더 맵게 java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Heap 이란? 자료구조 중 하나로, 일반적으로 우선순위 큐(Priority Queue)를 구현하기 위해 사용되는 이진 트리 구조. 힙은 일반적으로 '최소 힙(Min Heap)' 또는 '최대 힙(Max Heap)' 두 가지 종류로 나뉨 최소 힙(Min Heap)에서는 부모 노드의 값이 항상 자식 노드의 값보다 작거나 같다. 최대 힙(Max Heap)에서는 부모 노드의 값이 항상 자식 노드의 값보다..
[정렬] 프로그래머스 level 2 가장 큰 수 python, java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42746 처음 떠올린 생각은.. 1. 순열을 써서 가능한 모든 문자열 조합을 나열하고 2. 그걸 싹다 int로 바꿔서 sort 시켜주기 3. 다시 문자열로 바꾸기 아무리 봐도 비효율적인 것 같아서 고민해보다가 구글에 찾아봤다. 해결 흐름 1. int 배열을 모두 string으로 변환 2. 문자열에 sort를 한다. 이때 문자열에 sort를 적용하면 사전식 배열을 하게 되는데, 이는 각 문자의 ASCII 코드 값에 따라 정렬하는 방식을 의미한다. 즉, 문자열의 첫 번째 문자부터 비교하며 정렬하고, 첫 번째 문자가 동일한 경우 두 번째 문자를 비교하고, 두 번째 문자도 동일한 경우 세 번째 문자를 비교하..