| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- axios
- 405
- Legacy
- intellij
- error
- F-Lab 1개월 후기
- Backend Java
- springboot
- spring-boot
- 에프랩 2개월 후기
- f-lab
- 페이징
- vue-router
- JAVA의정석
- java
- 에프랩 1개월 후기
- 404 error
- 게시판
- 후기
- Java Backend
- debug
- spring
- 에프랩
- vue
- F-Lab 2개월 후기
- POST not supported
- Today
- Total
목록전체 글 (31)
Cronex
시리즈 첫 사이클 회고. 이전 글: AI와 함께, 백엔드 튜닝 한 사이클을 — 시리즈 시작튜닝을 하려면 튜닝할 게 있어야 한다. 그래서 Cycle 0은 튜닝이 아니라 의도적으로 망가져 있는 MVP 를 만드는 것이 목표였다. 망가진 지점은 동시성 제어 없음 이고, 그걸 수치로 재현하는 테스트가 Cycle 1의 출발점이 된다.Cycle 0이 의도한 것동작하는 POST /api/drops/{dropId}/reservations (재고 차감 + PENDING 예약 생성)통합 테스트: 정상 플로우 / 실패 플로우(409/404/400) / 오버셀 재현 (100 스레드)Docker Compose + GitHub Actions CI의도적 제외: 락 / 상태 전이 / 결제 / 취소 — 각각 대응 사이클에서 다룬다"의도..
실무에서 나는 Java/Spring을 쓰지 않는다. 튜닝 얘기를 읽거나 전해 듣는 경험은 있었지만, 내가 직접 병목을 재현하고 수정하고 재측정한 경험은 없다. 이 공백을 메우기 위해 사이드 프로젝트를 하나 시작했다.그리고 이번엔 혼자 하지 않는다. 내가 직접 경험해보지 못한 영역을 AI와 함께 빠르게 학습하고, 동시에 AI 하네스(도구·서브에이전트·스킬·메모리가 조합된 작업 환경) 자체를 설계하는 엔지니어링 도 익혀보고 싶다.왜 시작했나세 가지가 한꺼번에 모였다.평소 관심이던 도메인을 해보고 싶다. 한정판 드롭 / 티켓 예매. 예매 시점에 트래픽이 몰리고, hot row에 동시에 쓰려는 트랜잭션이 부딪히고, 외부 PG 응답이 느려지는 — 병목이 자연스럽게 발생하는 영역이다. "튜닝 연습용 장난감"이 아니..
📌 이번 2개월 동안 무엇을 배우고 무엇을 했는가2개월 차에는 1개월 차에 이어서 많은 내용들을 공부하였고, 이번에는 자바 객체 지향의 원리와 이해, JSP 웹 프로그래밍, 토비의 스프링을 읽게되었다.추가로 프로젝트도 만들면서 진행하였는데, 이번 기간 중에 3주 동안은 회사일이 너무나도 바빠서깊게 공부하지 못하고, 많이 공부하지 못한 기간이었다..그래도 이번에 공부하면서 느끼는 점은 interface를 정말 잘쓰자 였다.🔍 이전에는 잘못 알고 있었던 것들, 그리고 새롭게 깨달은 점이번에 공부하면서 새롭게 알게 된 내용들은 다음과 같았다.트랜잭션 전파 방식이 내부 메서드 호출 시 어떻게 깨지는지스프링의 경우 프록시를 사용하는데, 프록시를 통해 메서드 호출 후 그 내부에서 다른 메서드를 호출하는 경우스프..
📝 왜 F-Lab을 신청했는가백엔드 경력은 5년이 넘었지만 늘 마음 한편에는 “지금 방식이 정말 맞나?”, “대기업 기준에서 봤을 때 나는 어느 정도 수준일까?”라는 질문이 자리 잡고 있었고, 항상 개발을 하면서 느끼는 거지만 한 명의 개발자로 성장하고 싶었다.여기서 나의 개발 경력을 말하자면 6개월 국비학원을 수료하고 처음 회사에서 2년6개월은 잡 일을 하면서 시간을 보냈고 나머지 시간은 스타트업에서 1인 개발로 인프라 및 서버 개발을 하고 있다.예전부터 거의 1인 개발을 오래 하다 보니, 당장 서비스는 빠르게 만들었지만 CS, 언어에 대한 깊은 지식, 아키텍처 구조화 능력 등 이 부족하다는 걸 절실히 느끼고 있었다.혼자 공부하면 당장은 잘되는 것 같다가도“이 방향이 맞나?”“이렇게 하면 나중에 문제..
이 전 디버깅과 동일하게 진행되다가 dispatcherServlet에서 HandleAdapter의 handler 메소드를 실행하며 몇 개의 클래스를 더 거쳐서 controller를 실행됩니다. 이제 작성한 서비스에서 에러를 던지면 위에서 보이는 catch 블록으로 들어오게 됩니다. dispatcherServlet 에서는 catch문에서 dispatchException에 서비스에서 던진 에러를 할당하고 processDispatchResult를 실행한다. processDisptchResult에서는 handler를 찾아서 processHandlerException()을 호출한다. 여기서 핸들러[ mappedHandler.handler ]는 아래서 볼 수 있듯이 패키지를 포함하여 method 이름 인자까지 포함..
spring-boot 와 vue로 프로젝트 중 vue에서 request를 보내면 405 error를 발생시키면서 method "POST"를 지원하지 않는다는 로그를 보았다. 하지만 작성한 api는 POST였고... 무엇이 문제인지 모른 채 있다가, 겨우.. 해결하였다. 결론 결론부터 말하자면, 해당 api 에서 특정상황에서 exception을 발생시키는데 exception 발생 시 내부적으로 servlet path = "/error" 로 forward하는데 따로 설정하지 않은 상태에서의 /error path를 지원하는 메소드는 GET, HEAD 였고 api요청으로는 POST로 던졌기 때문에 "POST /error" 로 인식되어 method POST 는 지원하지 않는다는 exception을 발생시키며 st..
현재 사용하고 있는 vue의 버전은 [ @vue/cli 5.0.8 ] 사용 중에 있습니다. vue version 보시는 방법은 터미널을 여시고 [ vue --version ]을 치시면 나옵니다. spring-boot와 vue를 같이 사용하여 프로젝트 하면서 server에 요청을 보내기 위해서 Axios를 사용해보려 합니다. 프로젝트 내에서 npm i axios 를 통해 axios를 받아줍니다. 다 받아지면 package.json에 보시면 추가된것을 확인할 수 있습니다. vue에서 사용하는 방법은 여러가지가 있겠지만 [ component내에서 import를 통해서 사용하거나, Vue전역 property에 vue의 property로 저장하여 사용하는법(이 때는 다른 property와 구별하기 위해 prope..
이전글 : https://cronex.tistory.com/23 spring-boot 와 vue 이용하여 프로젝트 생성하기 spring boot 와 vue를 이용하여 프로젝트 생성하기 프로젝트를 시작하게 된 계기는 김영한님의 JPA 강의를 들으면서 vue도 다시 공부할 겸, thymeleaf 말고 vue를 이용하여 개발을 해보자 하여 시작하게 cronex.tistory.com 프로젝트를 생성 후 front-end에서 build한 결과물을 back-end 내 resources 하위에 static 폴더와 함께 생성하는 구조까지 만들었었습니다. 이 후 vue에 vue-router를 추가하면서 문제가 발생하였는데, build 후 spring-boot로 서버를 띄웠을 때 최초 localhost:8080/ [ind..