STUDY
![[TIL] leetcode: Running Sum of 1d Array](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8cUg8%2FbtsrBqyY8Ga%2FIW7L93krWLqMyZFW7yQUm0%2Fimg.png)
[TIL] leetcode: Running Sum of 1d Array
Running Sum of 1d Array - LeetCode Can you solve this real interview question? Running Sum of 1d Array - Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]). Return the running sum of nums. Example 1: Input: nums = [1,2,3,4] Output: [1,3,6, leetcode.com 문제 배열이 주어지고, 첫번째 인덱스부터 i번째 인덱스까지의 값을 더한 값을 i번째 index에 넣은 배열을 출력하는 문제 내 코드 앞의 합을 따로 저장해주면 되겠네 싶어서 짠 ..
![[TIL] Github Action으로 DB 연동! - Spring Boot Test 통과 확인](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqZ10k%2Fbtsq0vnFAPi%2FaZ0f2pSFKDcWQNzOMKuAk0%2Fimg.png)
[TIL] Github Action으로 DB 연동! - Spring Boot Test 통과 확인
Spring Boot Test는 application을 실행시켜보는 작업이라서 DB 연동이 필요하다. 우리는 MySQL 기반으로 코드를 작성했기 때문에 Github Action이 실행되는 Runner에서도 MySQL을 설치해보았다. 아마 H2를 설치해서 확인해도 dialect 부분만 바꿔서 작성하면 괜찮을 것 같지만. 익숙한 MySQL을 설치하기로 했다. GitHub Marketplace에서 MySQL을 어떻게 설치하면 되는지 잘 나와있다. Start MySQL - GitHub Marketplace Start a MySQL database github.com steps: - uses: samin/mysql-action@v1 with: host port: 3800 # Optional, default val..
[TIL] Entity의 선형 구조 / 트리 구조에 따른 구현 방식 비교 - Trouble Shooting
프로젝트를 시작하면서 Deck에 대한 기능을 맡았고, 그 기능 중 순서에 대한 로직을 parent값을 줘서 LinkedList처럼 선형 구조로 만들었다. [TIL] parent_id로 순서 바꾸는 로직 구현 프로젝트 시작 Trello를 참고하여 프로젝트 협업 도구를 만드는 프로젝트를 진행하게 되었다. 내가 맡은 부분은 카드들을 담고 있는 Deck 관련된 기능이었다. 구현해야 하는 기능 내가 구현해야 하 argente29.tistory.com 그런데 생각해 보니 이 로직은 위치 수정에 관한 로직으로 옮겨져야 했고 생성 메서드에서는 제일 오른쪽 끝에 있는 Deck의 index를 찾아 그 오른쪽에 위치시켜야 했다. 여기서 문제는 제일 오른쪽 끝에 있는 Deck을 어떻게 찾는지 였다. 처음 생각한 로직 일단 D..
![[TIL] parent_id로 순서 바꾸는 로직 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchYBYz%2FbtsqD4IZfTl%2F4i8IgOFv4KNNhnUuME9ZOk%2Fimg.png)
[TIL] parent_id로 순서 바꾸는 로직 구현
프로젝트 시작 Trello를 참고하여 프로젝트 협업 도구를 만드는 프로젝트를 진행하게 되었다. 내가 맡은 부분은 카드들을 담고 있는 Deck 관련된 기능이었다. 구현해야 하는 기능 내가 구현해야 하는 기능은 다음과 같았다. ✔ Deck 생성 아무 위치에서 Deck 생성이 가능해야 한다.( 현재는 오른쪽 끝에서 생성하는 로직으로 변경하였다. ) ✔ Deck 단일 조회 Deck을 조회했을 때 Deck의 id와 name, 속해 있는 Card를 조회할 수 있어야 한다. ✔ Deck 위치 수정 Deck의 위치를 수정할 수 있어야 한다. ✔ Deck 이름 변경 Deck의 이름을 변경해야 한다. ✔ Deck 삭제(논리적 삭제) Deck의 Boolean 타입 필드 isDeleted 값을 true로 바꿔준다. ✔ 스케쥴..
[TIL] Github Action 3 - Mockito 테스트(O)
1. dev 브랜치에 푸시하거나 PR보낼때마다 CI check on: push: branches: [ "dev" ] pull_request: branches: [ "dev" ] 2. PR에 테스트 결과 코멘트로 알려 줄 때 필요한 허가. permissions: checks: write pull-requests: write 3. 레포지토리 체크아웃 레포지토리의 코드를 runner 컴퓨터에서 돌려볼 수 있도록 pull로 땡겨가는 코드. - name: 레포지토리 체크아웃 uses: actions/checkout@v3 4. 현재 내가 사용하는 Spring Boot는 3.x버전은 Java 17부터 지원하기 때문에 JDK 17 설치 - name: JDK 17 설치 uses: actions/setup-java@v3 ..
![[TIL] 수업 자료 - 카카오 로그인 분석](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdsht9n%2FbtspPakKQrD%2FgmYyMsvGhkwomE0PxU6g81%2Fimg.png)
[TIL] 수업 자료 - 카카오 로그인 분석
수업 자료에서 카카오 로그인의 과정이 너무 빨리 지나가서 하나하나 뜯어보고 기록 > 1. 인가 코드 요청 GET 2. 인가 코드 요청 응답 -> Redirect_URI GET 3. 인가 코드로 액세스 토큰 요청 POST 4. access_token에서 카카오 사용자 정보 가져오기 5. 가져온 사용자 정보를 가져와서 추가로직 구현 6. User 정보로 JWT 토큰 만들어서 return. 7. JWT token 쿠키에 담아서 프론트에 넘겨주고 index.html로. 1. 프론트 단에서 버튼을 클릭할 때, 인가 코드를 받아오는 GET 요청을 보낸다. 이 때, client_id와 redirect_uri와 response_type을 쿼리 스트링으로 필수로 같이 보낸다. 사용자가 모든 필수 동의 항목에 동의하고 [..
[TIL] Github Action 2 - Workflow 구성해보기(작성 중)
Microsoft Developer Korea - Github Actions 영상을 참고하고 기록. 영상에서는 Node.js 프로젝트를 예시로 함. 목표 : Github Actions 워크플로우를 내 입맛에 맞게 작성할 수 있다. OS 종류와 Node 버전이 다양해요. → 빌드 매트릭스 이용하기 빌드할 때마다 테스트를 실행해서 불편해요. → 템플릿 변경해서 빌드 테스트 분리하기 다른 Job에서 빌드 아티팩트 접근이 안돼요. → Built-in 스토리지 이용하기 1. OS 종류와 Node 버전이 다양해요. 여러 타겟으로 동시에 빌드한다! → 매트릭스 빌드 여기에서의 매트릭스는 행렬! 예를 들어, Windows, Linux 버전에서 Node 12버전과 Node 14버전을 돌려야 할 때, Windows Lin..
![[TIL] 프로그래머스 - 상담원 인원(첫 lv.3 도전)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiR94F%2FbtspCnpvfzH%2FCjMayKcgpkkLHaiaqWDtnk%2Fimg.png)
[TIL] 프로그래머스 - 상담원 인원(첫 lv.3 도전)
프로그래머스 2023 현대모비스 알고리즘 경진대회 예선 lv.3 - 상담원 인원 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 전체 문제 로직 2. 코드 public int solution(int k, int n, int[][] reqs) { // 각 유형마다 멘토가 배치됨에 따라서 대기시간이 어떻게 되는지 구한다. int[][] waitingTime = new int[n - k + 1][k]; // i명 배치할 때, 각 유형의 기다리는 시간 구하기 for (int i = 0; i < n - k + 1; i++) { // mentos : i+1명의 ..
![[TIL] Github Action이란? CI/CD에 대해](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdkfun4%2FbtspFLjX0jc%2FSXYQ10d8PKvsmAqamHhw5K%2Fimg.png)
[TIL] Github Action이란? CI/CD에 대해
Github Action Github Action은 CI/CD를 위한 툴! 그렇다면 CI/CD가 뭔지 알아야 한다. 1. CI/CD 요즘같이 빠르게 변화하는 시대는 “어떻게 하면 시장과 고객의 요구에 빠르게 반응해서 제품 출시, 업데이트를 할 것인가!!”가 포인트. CI/CD는 어플리케이션 개발 단계부터 배포 때까지 이 모든 단계들을 자동화를 통해서 조금 더 효율적으로 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것을 말한다! 1) CI(Continuous Integration) : 지속적인 통합 버그 수정이나 새로 만드는 기능들이 매일 Repository에 주기적으로 Build되고 Test가 되어서 머지되는 것! 포인트는 두 가지이다. 1. 코드 변경사항을 주기적으로 빈번하게 머지해야 한다. 두 ..