전체 글
-
@Transactional REQUIRES_NEW 그냥 써도 되나?응애개발일기/Spring 2024. 12. 3. 03:31
문제 상황[ERROR] [main] [o.h.e.jdbc.spi.SqlExceptionHelper] - Lock wait timeout exceeded; try restarting transactionorg.springframework.dao.PessimisticLockingFailureException:could not execute statement [Lock wait timeout exceeded; try restarting transaction]NHN 아카데미에서 프로젝트를 진행하던 중, 회원가입 포인트 적립 기능을 구현하며 발생한 문제이다. 상황은 이렇다.회원가입 로직이 마무리되고 포인트가 적립이 된다.만약 회원가입은 성공적으로 마쳤지만 포인트 적립 로직에서 에러가 발생한다면? 현재 Transa..
-
Github action + spring boot CI/CD 구축하기응애개발일기/DevOps 2024. 11. 3. 19:08
계기8명의 팀원과 함께 팀 프로젝트 진행 중 번거로움을 해결하기 위해 CI/CD를 구축하기로 함.Why CI? develop 브랜치로 PR이 굉장히 많이 생성됨. 기존 코드와 합치기 위한 build, test 과정을 local 환경에서 일일이 수행하기 번거로움.Why CD? 패키징, 추가 테스트, 파일 업로드, 실행 등 반복되고 번거로운 배포 작업을 자동화하기 위해.Why Github Action? CI/CD 작업을 위한 다양한 툴 존재. on Premise 환경의 툴을 설정하기보다 클라우드 환경의 툴로 결정하여 빠른 구축하기 위함.Github action?유저가 설정한 이벤트 발생(특정 일시마다, github push 및 PR 등 다양한 trigger 존재)이벤트에 따라 Runner 생성 후 Job ..
-
Rust Rocket 예제코드로 응용 공부하기(1)응애개발일기/Rust 2023. 8. 7. 03:13
우연히 회사에서 Rust로 서버를 개발할 수 있는 기회를 얻게되었다. 먼저 그 어렵다는 Rust 문법을 공부하기 위해 Rustlings라는 github repository를 이용해 공부했다. 원래 JS를 이용해 공부할 때는 메모리는 무슨 그냥 변수타입도 신경 안 쓰고 막 짰다면 Rust는 변수의 소유권을 잘 관리해가며 코딩을 해야하니 여간 까다로운게 아니었다. 게다가 Rustlings를 이용해서 공부를 해도 실제 응용을 하며 사용하기엔 실제 몸에 익숙한 코드도 아니고 어렵기만 해서 Rocket이라는 서버 프레임워크의 예제를 통해 어떻게 통신하고 어떻게 언어를 사용하는지 공부해보려고 한다. Rocket 시작하기. git clone https://github.com/SergioBenitez/Rocket cd..
-
거누의 일기 - 2월퍼듀웅 2023. 2. 19. 07:27
벌써 2월달이 되었따... 진짜 아무거도 한게 없는데 2월달이따.... 큰일났따.... 1주일만 남았따ㅏ.... 그래도 2월달 일기를 써본따.. 내가 찍은 야경~이따... 그냥 처음 야근하고 k스퀘어 나옸는데 야경이 너무 이뻐서 찍었따... 발표가 끝나고 먹은 삼겹살이따... 삼겹살 구워먹는데 맛있어따... 옆 테이블에서 이렇게 찍길래 영우기요미형이 우리도 하자해서 이렇게 찍었따... 맛있게 먹긴 했는데 불판에 너무 달라붙어서 별로여따.... 그러고 좀 지난 다음 날 파이브가이즈를 머거따... 아닌가? 기억이 사실 안 난따.. 맛있었따.... 진짜 맛있었따... 와서 먹은 버거 중에 제일 맛있었던거 같따... 그리고 감튀를 미디움으로 했는데 감튀 컵을 오버해서 그냥 봉투에다가 감튀를 부어줬따.. 결국 배..
-
거누의 일기 - 1월퍼듀웅 2023. 1. 30. 10:15
1월이다. 운이 좋게도 글로벌 인재트랙에 선발이 되어서 미국 인디애나주의 퍼듀 대학교로 체험학습을 오게되어따. 처음 인천공항에서 비행기를 타봤따. 공항이 커서 신기해따. 가니까 춘식씨랑 라이언씨랑 나를 반겨줘따. 그러고 긴 14시간의 비행을 해따. 이렇게 길게 비행기 타는 건 처음이었는데 타보니까 이게 마지막 장거리 비행이었으면 해따... 다행히 옆 자리에 같이 참여하는 같은 학교 친구가 있어서 재밌게 왔따. 옆자리 외국인도 정말 착했따. 재밌는 비행이었지만 그래도 힘들었따.. 2달 동안 살 곳인 Lark에 도착해서 근처 큰 마트인 meijer에 가따. 너무 멀었따... 걸어서 가는 길도 근데 나쁘지 않아따. 다음 날 바로 k-square로 출근을 해야해따.. 아직 학기가 시작하지 않아 우리 숙소에서 가..
-
겨울 모각코 6주차 결과2021 겨울 모각코 2022. 2. 11. 21:50
Ajax ajax? 기존 동기형으로 진행되던 모델 브라우저와 서버가 계속 연결이 되어있어 요청을 보낸 후 처리가 완료되어 끝날 때까지 기다리는 형식으로 실행되었음. Ajax 비동기형 모델 브라우저에서 서버로 요청을 보낸 후 연결을 끊는다. 그 동안 브라우저는 다시 할 일을 하고, 서버에서는 여러 상태를 거쳐 처리상태인 4단계 상태가 되었을 경우 브라우저와 연결되어 브라우저가 처리된 요청을 가져온다. XMLHttpRequest XMLHttpRequest? 동기 비동기 통신을 지원하는 오브젝트. 오브젝트를 사용해 데이터 송수신 XML이 이름에 들어가있지만 XML형태만 통신되는게 아님. Object로 Resource를 fetch하기 위한 API. SOP 제약이 있음.(같은 source(protocol,port..
-
-
겨울 모각코 5주차 결과2021 겨울 모각코 2022. 1. 28. 22:19
TypedArray는 일반 배열과는 차이가 있는 유사 배열 객체이다. 타입 배열은 일반 배열에 비해 실행시간과 메모리 사용측면에서 더욱 효율적인 모습을 보여준다. 타입 배열의 원소는 모두 숫자다. 생성자에 숫자의 타입과 크기를 사용하여 타입 배열을 생성한다. 이 과정에서 크기가 고정된다. 자바스크립트 타입 배열은 `buffer`와 `view`로 나뉘어 구현되어 있다. 느낀점: 오늘 처음 들어보는 typedarray 공부를 햇다. 뭔 말인지 모르겠다. 잘 쓰일 것 같지는 않다. 벌써 방학이 반틈이 지나갔다. 뭔가를 해야겠다는 생각이 든다. 뭐를 할지 계획부터 짜야겠다.