728x90
반응형

분류 전체보기 65

[Spring] Transaction으로 인한 중복 아이디 회원 생성 문제

회원가입 엔드포인트로 빠르게 연속으로 요청 시 중복 회원 생성 문제 회원가입 엔드포인트로 빠르게 연속해서 같은 회원가입 요청을 보내면 생성 중인 유저에 대한 존재 유무가 체크되지 못해서 중복된 회원이 생성되는 문제가 발견됐습니다. 프론트엔드에서 회원가입 버튼을 연타하지 못하게 비활성화한다면 일시적으로는 괜찮겠지만 근본적으로 서버에서 이런 현상이 가능하다는 것이 문제이기 때문에 서버에서 문제를 방지하는 해결책이 필요합니다. 문제 원인 분석 이 문제는 백엔드에서 유저 생성이 Transaction 하게 처리되기 때문에 발생하는 문제입니다. 유저의 정보가 모두 생성되는 시점에서야 DB에 유저의 정보가 반영되기 때문에 유저의 정보가 생성되는 시간 동안 똑같은 이름의 유저를 생성하는 요청을 서버에 보내더라도 DB에..

vscode 터미널에서 실행하는 환경변수 직접 설정하는 방법

터미널에서 vscode 바로 실행하기 vscode의 'code' command를 PATH로 설정해주면 "code 폴더경로" 명령어를 실행 시, 쉘이 프로젝트 폴더로 vscode를 실행시킨다. 이를 설정하는 방법은 2가지가 있다. [방법 1] vscode에서 설정하기 vscode를 실행한다. Cmd + Shift + P 를 눌러서 커멘드 팔레트를 연다 "Shell Command: Install 'code' command in PATH"를 찾아서 실행시키면 끝 [방법 2] 직접 설정하기 만약 Bash를 사용한다면 다음 전체 커멘드를 shell에 복붙한다. cat > ~/.bash_profile # Add Visual Studio Code (code) export PATH="\$PATH:/Application..

Develop(개발) 2023.10.03

몇 살까지 수능공부 안하고 버텨도 될까?

결론부터 이야기하면 사람 따라 다른데 100%를 노는 것이 힘들기 시작하는 시점은 보통 고1이라고 보면 된다. 어릴 때부터 여러 학원과 부모님의 공부 압박을 착실히 견뎌온 착한 학생들은 해본적 없는 고민일지도 모른다. 나처럼 중고등학교 시절 몇 주동안 하루 13시간씩 게임을 해본 경험이 있는 학생들은 마음에 늘 짐이 있다."대학을 가고 싶은데 언제부터 수능 공부를 해야 하지..?" "이미 글렀나?" " 엄마 미안해"이와 동시에 마음으로는 "놀 수 있는한 최대한 놀고 싶다"라는 마음이 들기도 한다. 물론 최고는 당장 정신차리고 공부하는 것이지만 나는 착실히 놀만큼 노는 것도 좋다고 본다. 열심히 노는 고등학교 생활 + 열심히 공부하는 수험생의 적절한 비율을 직접 테스트해 본 필자의 경험을 토대로 알려주도록..

여러문제 2023.09.24

GPT한테 백준 풀게 해도 될까?

결론부터 이야기하면 되긴 하는데 현타가 올 수 있다. 백준 풀기 힘들 때 스트릭 유지하려고 GPT한테 풀게 하는 상상을 한 번쯤 해볼 수 있다. 시켜보면 은근히 척척 풀기도하고 그럴듯해 보인다. 근데 막상 코드 돌려보면 결과가 제대로 안 나오는 게 대부분이다. 전체적인 흐름은 짜져 있으니 디버깅해서 제출할 수 있긴 한데 솔직히 얘가 시간복잡도 고려해서 짰을지도 의문이고 어디 깃허브 긁어와서 그냥 준거면 그것대로 베낀 것 같아서 좀 그렇다. 안 되는 부분 디버깅 하려고 코드 읽어보고 로직 이해하다 보면 그냥 자기가 푸는 거랑 품이 큰 차이도 없고 심지어 고민하는 과정에서 배울 수 있는 건 배우지도 못한다. 애초에 로직이 맞는지도 모르기 때문에 디버깅 한참 하고도 틀릴 가능성이 높다. 그러면 얘가 잘 푸는 ..

여러문제 2023.09.16

대학생 때 학교 개발 동아리 들어가야 할까?

결론부터 이야기하면 사람들한테 전공책 pdf 받는 게 목적이면 들어가고, 배우려는 거면 인프런 결제해라 개발 공부는 해야겠고 혼자 하기에는 뭐부터 해야할지 모르겠어서 개발 동아리를 들어갈지 고민하는 사람들이 있다. 우선 이 고민은 동아리를 한 번도 안 들어가봐서 개발 동아리에 막연한 기대가 있는 사람들이 할만한 고민이다. 막상 들어가보면 개발 동아리라고 해봐야 특별한 활동은 없고 학생들끼리 술 마시고 노는 게 대부분이다. 간혹 동아리 내부 멘토링이나 프로젝트 대회가있지만 멘토링은 그냥 비슷한 대학생들이 학부레벨에서 선행 수업 조금 알려주는 정도이고, 이마저도 보통 일정대로 잘 진행되지도 않는 편이다. 프로젝트 대회도 산출물 보면 팀 반절은 런친지 오래이고 한 명이 하루 밤새서 만들어서 퀄리티가 흠스러운게..

여러문제 2023.09.15

다른사람 블로그 글 스타일 베껴도 될까?

결론부터 이야기하면 난 된다고 생각한다. 뭐든지 모방에서 시작하는 법인데 굳이 자기 검열에 걸려서 따라 하지 않을 이유가 없다. 어차피 따라서 하다보면 100% 따라 하지도 못하고 자기 스타일로 빠지게 되어있다. 애초에 대기업들도 스타트업 하나가 성공하면 따라 하기 바쁜데 이런 몇 명 보지도 않는 블로그의 글은 뭐 상관있겠나 그리고 글을 자기가 잘 쓰는 능력이 있으면 몰라도 글 쓰는 능력이 부족한 사람이라면 다른 사람의 센스나 좋은 글부터 따라서 써보는 게 글 쓰는 실력을 늘리는 데에도 좋다고 본다. 뭔가 재미있고 좋은 정보를 담은 글은 누구나 보고 싶기 마련인데 다른 사람들이 읽고 싶어하는 정보를 추가 제공하는 게 독자들한테 나쁘다는 생각도 들지 않는다. 아무튼 뭔가 하고싶은 마음이 들었다면 뚝심 있게..

여러문제 2023.09.14

[1958번][C/C++] LCS 3

https://www.acmicpc.net/problem/1958 1958번: LCS 3 첫 줄에는 첫 번째 문자열이, 둘째 줄에는 두 번째 문자열이, 셋째 줄에는 세 번째 문자열이 주어진다. 각 문자열은 알파벳 소문자로 이루어져 있고, 길이는 100보다 작거나 같다. www.acmicpc.net 접근 처음에는 LCS가 무조건 이어진 문자열 이어야 한다고 생각해서 이어진 문자열에 대한 코드를 작성했다. 악랄하게도 주어진 예제도 그렇게 이해하고 풀 수 있는 예제였다 ㅠ 예제 입력 abc abc ac 예제 출력 2 a, b가 떨어져있더라도 그냥 띄어서 개수를 셀 수 있다는 것이다.. 위와 같은 반례가 있기 때문에 다르게 다 풀고서 처음부터 다시 접근했다. 해결 기본적으로 DP로 풀어야한다는 감이 온다. (a..

[UNIX] read() write() 시스템 콜의 사용법과 주의사항

UNIX file 접근의 기초 read/write 시스템 콜에 대해 설명하기 전에 먼저 UNIX file 접근의 기초에 대해서 이해해 보자. UNIX상의 모든 file은 byte들의 linear sequence이다. 이 말은 즉, Text file과 Binary file이 따로 나누어져 있지 않다는 의미이다. 모든 파일은 Binary file이다. UNIX에서는 이런 파일들을 프로세스상에서 구분하기 위해서 open 해놓은 파일에 대해서 file descriptor라는 파일 구분자를 운영한다. 이는 file을 open 할 때마다 구조체 배열에 파일의 메타데이터가 저장되는 식으로 작동된다. 참고로 open 시스템 콜을 사용해서 file을 open 하게 되면 가공되지 않은 binary code를 그대로 받게 ..

[1550번][C/C++] 16진수

https://www.acmicpc.net/problem/1550 1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net 16진수 수가 입력으로 들어오면 10진수로 변환해서 출력하는 문제이다. 16진수의 크기가 작아서 무식하게 구현했다. 16진수를 문자로 받은 다음에 0~F를 0~16으로 바꿔주고 각 수에 자리수만큼 16을 곱해주며 다 더해주면 답이다. #include #include #include #include #include using namespace std; char str[7]; int len, ans, ret, c..

728x90
반응형