전공영역 공부 기록

SRE 백엔드 레이어

악분 2022. 7. 3. 22:25
반응형

약 2~3주동안 고민하면서 계속 변경되는 백엔드 레이어를 잠깐 정리하고자 합니다. 현재 일하는 직군이 백엔드 개발자가 아니여서 내용이 부족할 수 있습니다.

 

레이어 구조

현재 백엔드는 FastAPI로 개발하고 있습니다. FastAPI는 springboot, Django와 다르게 레이어 구조가 정해진게 없습니다. 자유롭게 레이어구조를 사용할 수 있습니다. 

 

그러다보니, 저처럼 백엔드 개발자가 아닌 사람은 적응하기 어렵습니다. boiler template을 여러개 살펴보고 결정한 레이어는 controller, service 레이어로 결정했습니다. 단순히, 외부 요청과 응답을 처리하는 레이어와 내부로직을 처리 레이어로 분리했습니다. 

 

가장 큰 고민이며 아직도 해결못한 문제. 예외처리를 어떻게 할 것인가?

예외처리를 가장 많이 고민했고 아직도 답을 모르는... 문제입니다. controller에서 사용자 응답을 처리하기로 결정했으니 service레이어에서 예외가 발생하면, 억지로 controller에게 알려줘야하나? 라는 생각을 했습니다.

 

알려줄때는 에러코드를 전달하나? 아니면 raise로 예외를 발생시켜서 알려줄까?를 생각했고 1주차에서는 응답포맷을 전달해주자라고 결정했습니다. 

 

2주차 때, 1주차에서 정한 로직과 포맷을 보니 너무 보기도 어려웠고 유지보수도 어렵다고 생각했습니다. 특히, 로직 처리의 80%가 예외처리 코드여서 너무 비효율적인 것 같았습니다.

 

그래서 2주차때 개발한 job생성 로직은 바로 처리할 수 있는 오류(전/후 로직과 연관관계가 없는 경우)는 바로 httpexception을 터쳐서 http응답을 줬습니다.

 

layer.drawio
0.00MB

반응형