We will find a way, we always have.

-interstellar

전체 글 293

[LeetCode] 2516. Take K of Each Character From Left and Right

🔈 문제You are given a string s consisting of the characters 'a', 'b', and 'c' and a non-negative integer $k$. Each minute, you may take either the leftmost character of s, or the rightmost character of s.Return the minimum number of minutes needed for you to take at least $k$ of each character, or return -1 if it is not possible to take $k$ of each character. 💫 예시Input: s = "aabaaaacaabc", k = 2..

[독서] 자바 / 스프링 개발자를 위한 실용주의 프로그래밍 - 7

10. 도메인소프트웨어 공학에서 말하는 '도메인'은 애플리케이션이 해결하고자 하는 문제 영역을 의미한다. 다시 말하면 사용자들이 겪는 문제 영역이 바로 도메인이다. 그리고 문제 영역이 곧 비즈니스 영역이므로 도메인은 비즈니스 영역을 의미하기도 한다. 따라서 도메인은 문제 영역이자 비즈니스 영역이다.  같은 맥락으로, 개발자의 역할은 단순히 요구사항에 맞는 애플리케이션을 개발해 주는 것이 아니라 고객이 겪는 문제 상황을 소프트웨어로 해결해주는 사람이라고 볼 수 있다. 즉, 개발자는 도메인을 분석하고, 고객이 겪는 문제를 인지하고, 이에 맞는 도메인 솔루션을 개발해줄 수 있어야 한다. 개발만 잘한다고 좋은 개발자가 아닌 것이다 :) 스프링 같은 프레임워크나 JPA는 애플리케이션의 핵심이 될 수 없다. 때문에..

카테고리 없음 2024.11.19

[독서] 자바 / 스프링 개발자를 위한 실용주의 프로그래밍 - 6

9. 모듈 모듈이나 모듈 시스템이란 무엇일까? 라는 질문에 일반적인 나오는 답변으로는 모듈은 독립된 코드 묶음이다.자바에서 모듈 시스템은 패키지다.자바 9에서 모듈 시스템은 module-info.java다이라고 한다. (사실 이 챕터를 읽기 전까지 모듈에 대해서 확실히 정의 내리기가 어려웠다.) 위 답변들 모두 모듈을 직접적으로 설명하는 것이 아니라 자바에 빗대어 설명하고 있고, 어딘가 애매모호 하다. 그리고 자바의 패키지 시스템은 모듈 시스템이 될 수 없기 때문에 '자바에서 모듈 시스템은 패키지다'라는 답변은 틀렸다.  그럼 다시 구체적으로 질문해보자. 소프트웨어에서 말하는 모듈이나 모듈 시스템이란 무엇일까?자바의 패키지는 왜 모듈 시스템이 될 수 없을까?자바 9부터 추가된 모듈 시스템(module-i..

카테고리 없음 2024.11.18

Vim 시작하기

들어가며최근에 네오가 Go는 vim으로 해야 한다고 하여 Vim을 배우고 있는 중이다. 괜찮은 강의가 있나 찾아보던 도중에 김왼손의 왼손코딩에서 빔을 알려주고 있었다! 🙌 아직까진 오른손이 방향키로 가려고 꿈틀 꿈틀 대지만 조금 있으면 익숙해질 것 같다.  까먹을것 같으니 명령어를 끄적여보자. 입력모드esc 명령모드로i: insert 커서앞a: append 커서뒤I: 문장 시작A: 문장 끝 네비게이션h: 오른쪽j: 아래쪽k: 위쪽l: 왼쪽 0: 문장 앞으로 이동$: 문장뒤로 이동^: 공백을 제외한 첫번째 글자로 이동 w: word 단어 앞으로 이동b: backward 단어 뒤로 이동e: w와 비슷하지만 단어 끝에서 정지W: 공백단위로B: 공백단위로 조합3w: 3단어씩 이동 f: find 문장의 첫 단어..

Skills 2024.11.17

[백준] 5015번: ls

🔈 문제현진이는 집에서 취미로 운영 체제를 만들고 있다. 오늘은 디렉토리 안의 파일 리스트를 보여주는 "ls"를 구현해야 할 차례이다. 현진이는 사용자들이 와일드카드(*)를 이용해서 패턴과 일치한 파일 이름을 보여주게 하려고 한다. 와일드 카드는 어떤 문자의 0개 또는 그 이상에 해당한다.  📝입력첫째 줄에 패턴 P가 주어진다. P는 1글자~100글자이고, 알파벳 소문자와 '.', '*'로만 이루어져 있다. 둘째 줄에는 디렉토리의 파일 개수 N이 주어진다. (1 ≤ N ≤ 100) 다음 N개의 줄에는 디렉토리에 있는 파일의 이름이 한 줄에 하나씩 주어진다. 파일의 이름은 1글자~100글자이고, 알파벳 소문자와 '.'으로만 이루어져 있다. 📑출력패턴 P와 일치하는 파일의 이름을 입력으로 주어진 순서를..

[GitHub] organizations에서 공통 issue 및 pr 템플릿 만들기

들어가며깃허브 organizations에서 여러 레포지토리를 만들어 작업을 하더라도 issue 나 pr 템플릿은 동일하게 가져가고 싶을 수 있다. 각 레포지토리마다 .github/ISSUE_TEMPLATE 디렉토리 만들고 그 하위에 이슈 템플릿 만들거나, pull_request_template.md 사용해서 pr 템플릿을 만들 수도 있다. 하지만 이렇게 만들면 중복된다는 문제가 발생한다!  해결예를 들어 한 organizations에 있는 backend 레포지토리와 frondend 레포지토리에서 동일한 issue 및 pr 템플릿을 사용하고 싶다면 .github 라는 이름의 레포지토리를 만들고 그 레포지토리 안에서 issue 및 pr 템플릿을 만들면 된다!    courgette 레포지토리와 aubergi..

DevOps/깃 2024.11.15

[Spring] 스프링 빈 프로퍼티 애노테이션 @Profile, @Order

스프링 빈 프로퍼티 애노테이션스프링 빈이란?스프링 빈은 스프링 IoC 컨테이너에서 관리하는 컴포넌트이다. IoC는 Inversion Of Control의 약자로 제어의 역전을 의미한다.이는 프로그래머가 작성한 프로그램의 흐름 제어를 다른 무언가에게 위임하는 디자인 패턴이다.스프링 빈을 등록한다는 것은 프로그래머가 작성한 객체의 생명 주기 관리를 스프링 프레임워크에게 넘긴다는 것이다.빈을 등록하는 방법으로는 @Component 애노테이션을 사용하여 컴포넌트 스캔을 통해 자동으로 등록하는 방법과 설정 클래스에 @Configuration 애노테이션을 붙여 @Bean 애노테이션을 통해 수동으로 등록하는 방법이 있다.이 외에도 등록하는 방법이 여럿 있지만 자주 사용되는 방법은 아니다. 이번 글에서 소개할 내용은..

Spring 2024.11.14

[LeetCode] 2563. Count the Number of Fair Pairs

🔈 문제Given a 0-indexed integer array nums of size n and two integers lower and upper, return the number of fair pairs.A pair (i, j) is fair if:0  💫 예시Input: nums = [0,1,7,4,4,5], lower = 3, upper = 6 Output: 6 Explanation: There are 6 fair pairs: (0,3), (0,4), (0,5), (1,3), (1,4), and (1,5). 🎱 제한1 nums.length == n$-10^9$ $-10^9$  📚 문제 풀이 문제를 요약하자면 nums에서 i, j 를 골라(i != j)  더했을 때 lower 보다 같거나 ..

토비와의 수다타임

토비의 스프링으로도 유명한 토비가 캠퍼스에 오셔서 수다타임을 진행해주셨다. 레벨 1,2 때까지만 해도 금서였던 토비의 스프링 저자를 만나게 되니 굉장히 신기했다. Q&A 형태로 진행했는데 몇가지 기억에 남는 것들을 남겨보려 한다. Q: 개발자의 삶에서 가장 중요한 태도는 무엇인가? 이 질문에 대해서 태도는 무엇인지? 개발자는 모든 개발자를 지칭하는 것인가? 이런식으로 역질문을 주셨다. 이런 행위를 통해 개발자의 삶에서 가장 중요한 태도가 무엇인지 보여주셨다. 질문, 의문을 가지고 내가 하는 일에 대해 '명확'함이 있어야 한다는 것이었다. (like T발 씨세요?) Q: 팀원과 안맞을 때는 어떻게 해야 하나요? 무언가 결정을 내릴 때 상대방의 감정도 중요한데 이 감정이 상하지 않도록 해야 한다고 했다. 그..

[Rust] 러스트에서 이분탐색

오늘 릿코드 데일리 풀다가 이분탐색을 사용할 일이 있어 러스트가 제공하는 이분탐색 라이브러리를 살펴보았는데, 재밌는 점을 발견하여 정리를 한다. (만약 데일리 풀이 코드가 궁금하다면 여기로) Vec에 binary_search 라는 함수가 있다. 만약 배열에 찾고자 하는 값이 있다면 해당 인덱스를 반환하고, 없다면 lower bound 즉 그 값이 들어가야 할 인덱스를 반환한다. 사실 자세한 설명은 아래에 첨부한 러스트 docs를 보는게 정확하고 친절하다. 그럼에도 이 글을 쓰는 이유는 러스트가 제공하는 이분탐색 함수가 파이썬이 제공하는 이분탐색 함수랑 다른 점이 있었고 여기서 러스트의 철학을 배웠기 때문이다. 파이썬이 제공했던 bisect 라이브러리와 달랐던 점은 무엇이었냐하면 Result로 한 번 값을..