[Packy] 선물박스 PK 생성 전략을 TSID로 변경한 이유
·
Database
1. 들어가며이번 패키 업데이트에 웹 버전을 출시하여 앱을 설치하지 않은 사람도 웹으로 선물박스를 확인할 수 있도록 할 예정이다.웹 출시 이전에는 아래 플로우에 따라 카카오톡으로 받은 선물박스를 앱에서만 확인할 수 있었다. 클라이언트는 선물박스 만들기 API의 응답값으로 받은 선물박스 ID를 사용하여 선물박스를 열 수 있는 딥링크를 생성한다.생성된 딥링크이 추가된 카카오톡 템플릿을 생성한다.선물박스를 받은 유저는 카카오톡에서 '패키 앱에서 열어보기' 버튼을 눌러 선물박스를 앱에서 확인할 수 있다. 이번 업데이트에서는 2, 3번 과정에서 딥링크 대신 제작한 웹 링크( packyforyou.com?box={giftBoxId} )를 넣고, 웹 사이트 내에 디퍼드 링크를 넣어 웹에서 앱으로 유저를 이동시키도록 ..
[Packy] 멀티모듈에서 다른 모듈의 Test Fixture 사용하기
·
Spring
1. 문제 상황진행 중인 프로젝트의 테스트 코드의 가독성이 (작성자인 나에게조차...) 가독성이 좋지 않은 것 같아 테스트 코드를 전반적으로 리팩토링하고 있다. 그 중 진행중인 작업 중 하나가 Test Fixture를 클래스로 관리하는 것이다.현재 프로젝트는 각 계층의 의존성을 분리하기 위해 멀티 모듈을 사용하고 있다. Controller와 Service는 api 모듈, Entity와 DAO는 domain 모듈에서 관리하고 있다. 그렇기 때문에 DTO를 반환하는 Fixture 클래스는 api 모듈, 엔티티를 반환하는 Fixture 클래스는 domain 모듈에서 관리하기로 결정하였다. 하지만 아래 사진처럼 api 모듈에서 domain 모듈에 있는 Fixture을 불러올 수 없는 문제가 발생하였다. 2. 문..
트랜잭션 격리 수준과 격리 수준에 따른 문제점
·
Database
1. 트랜잭션 격리성트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다.트랜잭션에는 ACID라는 네 가지 특징이 있다. 그 중 격리성(Isolation)은 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 2. 트랜잭션 격리 수준트랜잭션 격리 수준은 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 격리되어 있는가를 나타내는 정도이다.격리성이 커질수록 더 확실한 처리가 가능하지만, 동시에 수행될 수 있는 트랜잭션이 순서대로 처리되므로 속도가 느려지게 된다. ANSI/ISO SQL 표준에서는 격리 수준을 READ_UNCOMMITED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE 4가지로 나누고..
[Programmers] 광물 캐기
·
Coding Test/Problem Solving
https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명 작업을 끝내기까지 필요한 최소한의 피로도를 구해야 한다.작업을 끝내는 것은 1) 모든 광물을 캐거나, 2) 더 사용할 곡괭이가 없을 때까지이다.곡괭이 하나를 선택하면 광물 5개를 연속으로 캘 수 있다.2. 구현 아이디어 1 - 틀렸습니다곡괭이 하나를 선택하면 광물 5개를 연속을 캘 수 있다고 했으니, 주어진 minerals 배열을 5개씩 나누어 생각해보았다.글자색을 다르게 하여 각 ..
[Programmers] 호텔 대실
·
Coding Test/Problem Solving
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   1. 구현 아이디어 1 - 틀렸습니다백준 1931번 회의실 배정 문제나 저번에 포스팅한 과제 진행하기 문제와 비슷한 그리디 알고리즘 유형이다. 이전에 풀었던 기억을 되살려 아래에 적은 순서대로 풀었다.1. 끝나는 시간을 기준으로 book_time을 정렬한다2. 필요한 객실의 수를 관리하는 벡터 rooms를 만든다3. book_time에 있는 원소(elem)들을 순회하며 rooms에 있는 원소(room=rooms[i])와 비교한다 (2중 반복문)   3-1. 만약 elem의 시작하는 시간 >= room의 끝나는..
[Programmers] 유사 칸토어 비트열
·
Coding Test/Problem Solving
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. 문제 설명0번째 유사 칸토어 비트열은 "1"n번째 유사 칸토어 비트열은 n-1번째 유사 칸토어 비트열에서1을 11011로 치환0을 00000로 치환n, l, r이 주어졌을 때 n번째 유사 칸토열에서 [l, r] 구간에서의 1의 개수를 반환해야 한다.  더 자세한 문제 설명이 필요하다면 위 링크 참고 ... 2. 구현 아이디어1 - 틀렸습니다처음에 백준 4779번 칸토어 집합 문제가 떠올라서 재귀를 사용해서 문제에 주어진 내용을 그대로 구현하였다.#include using namespace std;typedef..
짱정연
짱정연의 짱개발자 도전기