본문 바로가기

백엔드2

백엔드 리액티브 프로그래밍이 대체 뭔가 — 정통 방식의 한계에서 WebFlux까지 리액티브(Reactive)라는 말은 스프링을 조금만 다뤄 봐도 자주 마주친다. WebFlux, Reactor, Mono, Flux 같은 단어가 따라붙는다. "논블로킹이다", "비동기다", "스트림이다" 같은 말이 뒤섞여 나오는데, 이 단어들이 서로 어떤 관계인지는 흐릿하다. 이번 기회에 이 개념을 처음부터 차근차근 공부해 보도록 하자.이 글은 그 흐릿한 부분을 순서대로 잡아 간다. 순서가 중요하다. 리액티브부터 정의하면 왜 이런 게 필요한지 감이 안 잡힌다. 그래서 거꾸로, 지금 대부분의 서버가 쓰고 있는 정통 방식이 뭐가 문제인지부터 본다. 그다음 블로킹과 논블로킹이라는, 자주 섞여 쓰이지만 다른 개념을 정리한다. 이 둘이 잡히면 리액티브 프로그래밍이 무엇을 하려는 것인지 자연스럽게 보인다. 마지막으로.. 2026. 8. 6.
백엔드 JPA 연관관계, 쓸까 말까 — @ManyToMany도 써도 될까? 우리 팀의 컨벤션은 객체 매핑(Object Mapping)을 거의 쓰지 않는 쪽으로 흘러왔다.@ManyToMany는 물론이고, 양방향 @OneToMany도 잘 쓰지 않는다. 심할 때는 "연관관계 매핑 자체를 최소화하자"는 분위기까지 간다.그래서 한 번 정리해두고 싶었다. JPA의 연관관계 매핑, 도대체 쓰는 게 맞을까 안 쓰는 게 맞을까?먼저 한 가지 사례부터 짚고 싶다. 우리 회사는 개발자 채용 사전 과제를 검토할 때, @ManyToMany를 그대로 쓴 코드에 감점을 주는 경우가 많다. 오해는 말자. 모든 회사가 그렇다는 이야기는 아니다. 세상엔 @ManyToMany를 자연스럽게 쓰는 팀도 많다. 다만 우리 팀 기준에서는, 실무에서 반복적으로 문제를 일으켜 온 매핑을 아무 고민 없이 썼다는 신호로 보기.. 2026. 7. 26.