목록분류 전체보기 (276)
HwangHub
시나리오 구현하려는 시나리오는 다음과 같다. 로그인 창에서 비밀번호 찾기를 누르면 이메일을 입력하는 창이 나온다. 우리 서비스에서 이메일은 unique 제약조건이 걸려있으므로, 이메일을 기준으로 멤버 엔티티를 조회한다. 이메일이 유효한지는 인증번호를 통해 검증하고, 그 이후 수정하려는 비밀번호를 입력받아 DB 데이터를 수정한다. 구현 위 시나리오를 구현하기 위해 다음 사항들을 개발하였다. 회원가입/비밀번호 수정 요청 dto에 비밀번호 정규표현식을 적용하여 요청에 대한 유효성 검사 수행 json->java object로 dto를 역직렬화하기 위해 requestDto에 기본생성자 선언 멤버 엔티티 비밀번호 수정을 위한 setter를 제한적으로 오픈 영속성 컨텍스트의 더티 체킹을 활용한 엔티티 업데이트 구현 ..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 내가 얻고자 하는 값은, 문제에서 주어진 규칙을 따를 때 "첫 번째 위치에서부터 최대 몇 번의 연속된 점프를 할 수 있는가?" 이다. 수열 위의 임의의 점 arr[i]이 갖는 값은 그 위치에서 얼마만큼 멀리 점프를 할 수 있는지를 의미하며, 무조건 적게 뛰거나 많이 뛴다고 해서 최선이 아니므로 그리디는 부적절한 것으로 보인다. 그렇다면 전체 경우의 수를 탐색해야 하는가? n의 크기가 1,000이하이므로 백트래킹이나 루프를 이용한 완전탐색을 돌리려고 시도하면 어림짐작 하더라도 상당히 많은 경우의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byf7gW/btsz82QKbls/m0HKHi8qkN2pSexyLa2sdK/img.webp)
오늘날 많은 IT 기업에서 쿠버네티스를 사용하고 있는데, 이들이 k8s(쿠버네티스)를 사용하는 이유를 단순히 "요즘은 서비스 구조로 대부분 MSA를 적용하니까" 보다 조금은 더 디테일한 이유를 간단하게 파악해보기 위해선 클라우드 컴퓨팅을 왜 사용하는지부터 알아야 합니다. 클라우드 컴퓨팅을 사용하는 이유 컴퓨터를 이용하여 서비스 환경을 구축하기 위해선 우리가 일상적으로 사용하는 컴퓨터(PC)와 비교하여 더 많은 연산량을 처리해야 했고, 제너럴하게 이용되는 PC와 달리 보다 목적에 최적화된 구조가 필요했습니다. 이를 위해 서버 컴퓨터라는 개념이 등장하게 되었습니다. 사실 크게 다르진 않고, CPU나 마더보드, 그리고 주변 장치(네트워크)로 이어지는 길이가 일반 컴퓨터에 비해 넓고 빠르며, 설계 목적이 '36..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 ans[i]가 i번째 숫자까지를 기준으로 최대 길이라고 할 때, ans[i-1]에서 ans[i]를 무조건 알 수 있다 할 수 없다고 판단하여 그리디는 아니라고 판단했다. 그러면 완전탐색이냐 할 때에 n이 1,000 이하의 수인데, 총 1000개의 숫자 중 최장 길이의 부분 수열을 구하기 위해서는 길이 1부터 n까지의 루프 속에서 해당 길이의 숫자를 선택하는 모든 경우를 탐색하기 위해 백트래킹을 걸면 2^n정도로 걸리는 게 일반적이라 이번 문제에서는 부적절하다 보았다. 동적계획법으로 풀게 되면 ..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 분석 인접한 항으로 이동하는게 아니라 모든 항을 대상으로 움직이는 패턴이 정해져 있고 , n 번째 위치의 숫자가 무엇일지 알아보는 문제이므로 전형적인 DP 문제이다. 하지만 이 문제에 대한 점화식을 세우는 것이 개인적으로는 어려웠는데, 최댓값을 최소로 하는 프로그램이므로, "각 패턴의 최대값끼리의 최솟값을 구하면 된다"라는 것을 감안하여 세우니 되었다. 감 잡기 전에는 와닿지 않는 말이었는데, 식을 세우고 나니 사실 문제가 매우 명확하게 제시되어있는 것 같다는 생각도 했다. 문제 풀이 package..
프로젝트 팀의 FE 레포를 분리하여 관리했었는데, 이번에 프론트엔드 코드를 확인할 일이 있어서 레포에서 pull을 받으려고 했다가 마주한 에러이다. 진행했던 시나리오는 다음과 같다. git init git remote add origin git branch -m main git pull origin main git switch -c dev git pull origin dev main으로부터 dev가 분기했을 것이고, dev는 main보다 더 많은 커밋이 쌓여있는 상황이었기에 dev와 main의 커밋 히스토리 중 main이 당연히 더 뒤에 있을 것이라 판단하였다. 하지만 추측컨데, 그러지 않았던 것 같다. git pull origin dev를 수행하는 순간, fatal : refusing to merge ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sL0LA/btszYodB0vE/MqXb0URz44eAO01rhfcT11/img.png)
과거 내 블로그 migration 지라 회원가입 슬랙 가입 깃허브 가입 지라 프로젝트 매니징 시작하기 지라에서 프로젝트 생성!!! 지라에서 프로젝트 생성하기 슬랙과 지라 연동 슬랙-지라 연동하기 슬랙에서 app -> "지라" 앱 설치 지라에서 슬랙 허용 및 slack integration 설정 슬랙에서 /jira connect -> project 연결 슬랙에 깃허브 연동 슬랙에서 app -> "github" 앱 설치 슬랙에 깃 계정 연동 /github subscribe owner/repo 지라와 github 연동 위 사진 중 app에서 github for jira (pick) 설치 및 연동 지라에서 깃허브 레포 연동 깃허브에서 슬랙/지라 연동 Settings->Applications에서 깃허브 앱 중에서..
문제 분석 이 문제는 일정 규칙을 갖고 숫자를 채워나갈 때, 최종적으로 어떤 결과를 얻는가를 파악하는 문제이므로 전형적인 동적계획법 문제이다. 문제 풀이 동적계획법 알고리즘을 적용하기 위해, 기본적으로 당연한 경우를 initialize 한 뒤에, 가정한 점화식을 바탕으로 코드를 전개해주었다. package 코드트리.DP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class 정수_사각형_최소_합 { private static int n; private static int[][] arr; private stati..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Rqgxc/btszUrBIkZO/u5UBKD95qwfAKf32ByviE0/img.png)
구현 내용 요약 직원 정보를 전체 조회(보고서 출력), 조건 검색, 조건 삭제, 직원 추가, 조건 수정을 수행할 수 있는 프로그램 기본 요구사항을 넘어, “조건 수정” 기능을 추가 구현 자바 GUI 프로그램 제작을 위한 Java Swing 라이브러리를 활용하여 standalone 프로그램으로 구현 DB connector 는 Jdbc 라이브러리를 활용하여 MySQL 로컬 데이터베이스와 연결함 소스코드는 깃허브 레포지토리에서 확인할 수 있다. 개발 환경 Programming Language : Java 17 (openjdk-17) IDE : intelliJ Ultimate mainly-used library : java swing (GUI), jdbc (database connector) Database :..
질문받았던 에러를 기록한다. JPA를 활용하여 개발을 하다가 제목과 같은 SQL Error가 발생하였고, 문제의 SQL은 다음과 같다. SQL statement: insert into like (artist,date_time,item_id,item_name,raffle_state,user_id,venue,like_id) values (?,?,?,?,?,?,?,default) 이것과 유사한 에러를 나도 처음 마주했던 때를 생각하면, 도대체 SQL을 자동으로 완성해주는 data JPA를 사용했는데도 SQL Error가 뜬다는 것이 이해가 되지 않았었다. 사실 위 SQL문을 블로그에서 보면 문제가 뭔지 바로 보이긴 한다. 문제는 자바 코드를 기반으로 생성된 SQL 문에서 like 와 같은 SQL상에서 사용하는..