We will find a way, we always have.

-interstellar

티스토리챌린지 9

[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로 한 번 값을..

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

8. 레이어드 아키텍처 8.1 레이어드 아키텍처의 최소 조건레이어드 아키텍처는 애플리케이션을 레이어로 나누고 각 레이어에 역할을 정한다. 대표적인 레이어로는 프레젠테이션, 비즈니스, 인프라스트럭처 같은 레이어가 있다. 한가지 유념해야 할 점은 레이어드 아키텍처는 한 사람에 의해 만들어진것이 아니라 여러 개발자의 필요에 의해 발전된 아키텍처이다. 그래서 사람마다 레이어드 아키텍처를 이해하는 깊이나 수준이 다르다. 누군가는 레이어를 단순히 파일을 구분하는 폴더 구조 정도로 이해하는 사람이 있고, 또 다른 누군가는 헥사고날 아키텍처 수준으로 사용한다.  레이어드 아키텍처에서 아키텍처란 "정책과 제약 조건을 이용해 목적을 달성"하는 것이다. 목적이 무엇인가에 따라 정책과 제약 조건은 변경될 수 있다는 것이다. ..

카테고리 없음 2024.11.10

[VM] 그랄VM (GraalVM)

최근 읽고 있는 도서 JVM 밑바닥까지 파헤치기에서 자바의 신기술 중 그랄VM이 무엇인지 잠깐 엿보았었다. 그런데 바로 다음날 if 카카오에서도 GraalVM 도입으로 JVM 백엔드 애플리케이션의 구동 초기 성능 문제 해결하기 라는 제목으로 발표영상이 올라와 이건 운명이다 생각하여 그랄VM이 뭔지 정리해보려고 한다. 그랄VM (GraalVM)2018년 4월 오라클 연구소는 그랄VM이라는 새로운 기술을 발표했다. "Run programs faster anywhere" 라는 구호로 등장했다.   사진 출처: https://blogs.oracle.com/java/post/for-building-programs-that-run-faster-anywhere-oracle-graalvm-enterprise-editi..

[백준] 15944번: 성공

🔈 문제당연한 이야기지만, 성공으로 가는 길이 항상 평탄하지만은 않다. 온갖 장애물이 가득하고, 장애물에 막혀서 주저앉을 수도 있다. 그래서 그 장애물을 폭파하려고 한다.성공으로 가는 길은 N×M격자 위에 놓여 있다. 성공으로 가려면 맨 왼쪽 위 칸에서 시작하여 장애물이 없는 상하좌우로 인접한 칸을 밟으면서 맨 오른쪽 아래 칸에 도착해야 한다. 한 번의 폭파 작업으로 D×D 격자 내에 있는 모든 장애물을 없앨 수 있다. 하지만 세상에 공짜는 없는 법. 폭파 작업에도 큰 힘이 들기 때문에, 성공으로 가려면 최소 몇 번의 폭파 작업이 필요한지 알고 싶다.📝입력첫 번째 줄에 격자의 행의 개수 N, 열의 개수 M, 폭파의 범위 D가 주어진다(D ≤ N, M ≤ 500, 1 ≤ D ≤ 100).그 다음 N개의..