#예외처리

질문 3
해시태그 없이 키워드만 일치하는 질문은 개수에 포함되지 않아요.

8달 전 · lepffm 님의 새로운 답변

예외처리 중앙 집중화

안녕하세요, 현재 서비스를 만들고 있는 상태입니다, 저번 서비스 보다는 더욱 유지보수를 올리고 어느정도 규약이 지켜진 상태로 만들고 싶은 상태인데, 점점 규모가 커지다보니 적절한 예외가 필요하다 느꼈고 예외처리를 세분화(MemberException, AuthException 등..) 시키는 과정에서 코드 중복이 상당히 많이 발생하는 문제가 생겼습니다, 그래서 모든 예외처리 로직을 common쪽으로 이동시키고 인터페이스를 통해서 느슨하게 연결을 해둔 상태인데, 이 방법이 괜찮을지 현업 분들의 조언을 듣고 싶습니다, 다소 부족한 설명임에도 불구하고 답변을 주신다면 감사하겠습니다. 오늘도 좋은 하루 되시길 바랍니다!

개발자

#예외처리

#서비스

#exception

#코드작성

#코드리뷰

답변 1

댓글 0

조회 42

일 년 전 · 손우진 님의 새로운 답변

서비스 새로 추가중인데 시스템이 다른 경우

제공하는 건 같은 서비스인데 내부 시스템이 다를 경우 완전 새로 만드는 편인가요? 아니면 우회나 예외 처리해서 만드나요? 지금은 시간이 좀 급해서 예외처리하고 우회해서 만드는 중이에요

개발자

#개발고민

답변 2

댓글 0

조회 38

일 년 전 · 김하림 님의 답변 업데이트

프로젝트 면접 질문

면접관님 께서 진행했던 프로젝트에서 자랑하거나 어필할 수 있는 부분을 말씀하라고 하면 무조건 완성된 프로젝트 한에서 이야기를 해야하나요? 아니면 현재 진행중인 프로젝트도 말해도 되나요..? 저는 프로젝트를 여러 개를 진행을 해봤는데 그때 마다 다른것들을 사용을 해서 이걸 어떻게 이야기 해야할지 모르겠습니다 ㅠ 1. DB연결 - 좋아요 기능, 댓글 기능, 차트라이브러리 사용 2. 외부 API 사용, 페이지네이션 사용 3. 가상 데이터 사용, 페이지네이션사용, 리덕스사용 4. 현재 진행 - 외부 API 사용, 무한스크롤사용, API이미지 예외처리, 파이어베이스 로그인 회원가입, 댓글기능, 좋아요기능 이런식으로 진행을 했습니다. 이걸 어떻게 설명해야지 좋을까요 ㅠ

개발자

#면접

#기술면접

#react

#리액트

#프론트엔드

답변 2

댓글 3

조회 432

일 년 전 · 백승훈 님의 답변 업데이트

리액트 바디의 높이가 content fit일때 데이터 로딩중의 화면

안녕하세요 6개월차 프론트엔드 주니어 개발자입니다. 궁금한 부분을 뭐라고 구글링해야될지 모르겠어서 제목도 애매한데 제가 궁금한 부분은 페이지에 헤더 내용에 따라 높이가 다른 바디 푸터 가 있는데 바디의 내용을 불러오는 시간이 매우 짧다면 잠깐 사이에 푸터가 깜빡거리면서 노출되었다가 컨텐츠가 생기면서 아래로 밀려나며 안보이게 되는 부분이 깜빡임처럼 보여서 고치고 싶기 때문입니다. 바디의 내용이 항상 같은 사이즈라면 고정 div를 두고 로딩중일땐 그 div를 노출시키는 조건문을 생각해봤는데(유튜브앱에서 댓글창이 로딩중일때 일정 레이아웃을 잡고 빈 공간인것처럼요) 지금 페이지에도 isLoading값을 가져와서 아무것도 없는 높이가 큰 div를 보였다가 데이터가 오면 보이도록 적용해보았는데 이렇게 하면 내용이 몇줄 안될때, 로딩중일때는 큰 div에 밀려 footer가 안보이다가 내용이 로딩되면 내용의 길이가 짧아 footer가 다시 보이는 부분으로 올라와서 깜빡임처럼 보인다는점 입니다. 깜빡임 등의 키워드로 검색하면 useLayoutEffect나 이미지 lazy loading 등의 정보만 있어서 제가 원하는 부분과는 다른것같습니다. 해당 조언을 구할 사수가 따로 없고 구글링이나 gpt에도 설명할 키워드가 부족해 이렇게 질문 남깁니다. 현업에서는 이런 조건일때 어떻게 예외처리를 하는지 궁금합니다. (현재 프로젝트에서 스피너를 따로 사용중이지 않아서 더 깜빡임처럼 보입니다.)

개발자

#react

답변 1

댓글 0

추천해요 1

조회 146

일 년 전 · 박세연 님의 답변 업데이트

400 or 403

어떤 api 의 요청이 특정 시간대에만 가능하여 서버가 그 외의 시간대를 예외처리한다면, 400 이나 403 중 어떤 status 가 맞다고 보시나요?

투표

개발자

#http

#status

답변 2

댓글 0

추천해요 2

조회 223

일 년 전 · great 님의 새로운 답변

가장 좋은 예외처리 방법

다음 중 가장 좋은 예외처리 방법은 몇번이라고 생각하시나요? (현재 포멧에서 더 변할 것 같진 않아요.

투표

개발자

#javascript

#react

답변 12

댓글 0

추천해요 16

보충이 필요해요 2

조회 4,119

일 년 전 · 김하림 님의 새로운 답변

예외처리가 더 효율적인 코드

유저 로그인 관련 메서드를 구현하던 중, 예외처리 방법 두가지 중 어느 것이 더 효율적(가독성, 유지보수 측면 등등..)인지 여쭤보고 싶습니다 첫번째 방법: try문에 NotFoundException을 던지고, catch문에서 instanceof를 사용해서 예외의 타입을 확인하고 처리하기 async userLogin(nickname: string, password: string) { try { const user = await this.usersRepository.findOne({ where: { nickname } }); // console.log(user) if (user && (await bcrypt.compare(password, user.password))) { return user; } else { throw new NotFoundException('아이디 또는 비밀번호가 일치하지 않습니다.'); } } catch (e) { console.error(e); if (e instanceof NotFoundException) { throw e; // NotFoundException은 그대로 던지기 } else { throw new InternalServerErrorException('알 수 없는 오류'); } } } 두번째 방법: try문에서는 일반적인 Error객체를 던진 후 catch문에서 error.message를 확인하여 예외 유형을 판단하기 async userLogin(nickname: string, password: string) { try { const user = await this.usersRepository.findOne({ where: { nickname } }); // console.log(user) if (user && (await bcrypt.compare(password, user.password))) { return user; } else { throw new Error('아이디 또는 비밀번호가 일치하지 않습니다.'); } } catch (error) { if (error.message === '아이디 또는 비밀번호가 일치하지 않습니다.') { throw new NotFoundException('아이디 또는 비밀번호가 일치하지 않습니다.'); } else { // 다른 예외 처리 throw new InternalServerErrorException('알 수 없는 오류'); } } }

개발자

#node.js

#예외처리

답변 1

댓글 0

추천해요 1

조회 243

일 년 전 · 노주영 님의 질문 업데이트

부트캠프 최종발표 내용에 관해서

선생님들 안녕하세요. 부트캠프에서 셀프세차장 예약 앱을 주제로 약 두달여간의 개발을 진행했고, 3일 뒤에 최종발표만을 남겨두고 있습니다. 부트캠프 운영진 측에서 최종발표 내용으로 개발 주안점을 둔 부분을 주로 다뤘으면 좋겠다고 하셨습니다. 발표 내용을 미리 구성해봤는데, 선생님들께서 보시고 조언 좀 주시면 감사하겠습니다. 저희 팀 개발 스택은 다음과 같습니다. FE: React, Redux-thunk, React-query BE: Spring Boot, MySQL, Amazon S3 아래와 같이 발표 내용을 구성해 봤습니다. 1. 프론트엔드 a. 아토믹 패턴의 활용 - 기획단계에서부터 모든 컴포넌트들을 미리 설계해놓고 atom, molecule등의 레벨로 미리 나눠놨다. 덕분에 개발을 빠르게 진행할 수 있었고, 유저들에게 일관된 인터페이스를 제공한다. b. 예외처리 - 유저들에게 보다 친절한 에러를 제공하기 위해 백엔드와 협의하여 세부 에러코드들을 정의했다. 각 컴포넌트들을 에러 바운더리로 감싸 GET 요청이 실패한 경우에는 Fallback UI로 화면을 덮어줬다. 그리고 각 API들의 onError 콜백을 부여하여 Mutation 요청이 실패한 경우에는 alert로 알려준다. c. 상태관리 - props drilling 현상을 방지하기 위해 redux-thunk를 사용해 세차장 정보를 불러올 때마다 세차장 정보를 전역 상태로 관리하여 자식 컴포넌트로 넘겨주게 구성했다. 2. 백엔드 a. 예약 신뢰성 - 사용자가 요청한 예약이 운영 시간을 준수하고 중복 예약이 방지되도록 예약 검증을 철저히 하였다. b. 예외 처리 - 명확한 예외 처리 및 상태코드 할당 c. 권한 - 역할 기반 권한 관리, 사용자 인증 및 JWT 토큰 처리 여기까지입니다. 내용을 잘 구성했는지 모르겠습니다. 제가 경험해본 프로젝트 중 가장 규모가 큰지라 발표 내용이 부족하진 않은지 걱정이 많이 됩니다. 발표 평가위원이 주로 개발자라고 하셔서, 개발자의 시선으로 봤을 때 위 주제들이 어떠한지 고견을 듣고 싶습니다. 감사합니다.

개발자

#부트캠프

#react

#spring-boot

답변 1

댓글 0

보충이 필요해요 2

조회 155

일 년 전 · 얌얌 님의 댓글 업데이트

기획서에 설명이 없는경우도 있나요

아니 기획서에 피그마에 일렬로 도면만 그려져있고 걍 회원가입이면 이부분은 회원가입이라고 써있기만 하고 보면 예외처리나 팝업처리하는거도 마지막 확인하는 부분에만 나와있고 아무거도 없는데… 기능정의서도 없고 온니 그림만 있는데 이런경우도 있나요..

개발자

#기획

답변 1

댓글 1

조회 80

2년 전 · 익명 님의 질문

Flutter AppLifecycleState 질문이 있습니다.

flutter에서 AppLifecycleState를 이용하여 paused -> resumed 상태로 변경될 때 잠금 화면 위젯으로 이동하게끔 구성하려고 합니다. 다만 이렇게 하면 동작은 되지만 생체인증/업로드 등의 동작을 하더라도 앱을 벗어났다고 판단해서 잠금 화면을 띄워주는 것 때문에 문제입니다. 제가 AppLifecycleState를 잘못 사용하고 있는건가요? 아니면 여기서 추가로 더 로직을 구현해서 예외처리를 해야하는걸까요? 아무리 구글링/스택오버플로우를 찾아봐도 딱히 이런 내용은 없어서 저만 바보인 것 같은 느낌이 드네요 🥲

개발자

#flutter

답변 0

댓글 0

조회 68

2년 전 · 손정현 님의 답변 업데이트

서버의 예외처리는 어디까지 하는게 맞을까요?

최근 서버 개발을 하다가 한 가지 의문점이 들어서 질문을 올립니다. 현업에 계시거나 사이드프로젝트를 하실 때 다른 서버 개발자분들은 어떤식으로 처리하는지 궁금증이 생겼습니다. 저는 클라이언트 측에서 검증된 데이터가 넘어와도 서버에서 "안전성"이라는 목적으로 한 번 더 검사하는 식으로 로직을 보통 작성합니다. 예시를 게시글 삭제로 들겠습니다. 애초에 뷰에서 해당 글에 권한이 있는 유저에게만 삭제 버튼이 활성화됩니다. 게시글 삭제 로직 1. 클라이언트로부터 삭제할 게시글의 id값과 유저의 id를 받아옵니다. 2. 데이터베이스에서 해당 게시글이 존재하는지, 유저가 존재하는지 확인합니다. 3. 해당 게시글의 주인의 id 값과 넘겨받은 유저의 id값이 일치하는지 확인합니다. 4. 게시글을 삭제합니다. 이러한 로직을 구현한 후 클라에서 이미 해당 유저의 게시물이라는 판정을 받은 데이터가 넘어오는데 서버에서 이런식으로 "이중으로 검사를 하는게 과연 효율적인가"라는 생각이 들어서 질문을 올리게 됐습니다. 감사합니다

개발자

#server

#exception

답변 7

댓글 3

추천해요 19

보충이 필요해요 1

조회 1,825

2년 전 · 커리어리 AI 봇 님의 새로운 답변

express로 service 단에서 예외처리 방법

프로젝트 간단한 설명 저희 회사 프로젝트는 프론트엔드 Rect, 백엔드 Spring 으로 되어 있고 보안 회사여서 프론트 파트는 모노레포로 구성 되어있습니다. React와 NodeJS 가 같은 포트를 사용해서 모든 요청이 NodeJS에서 처리 됩니다. NodeJS는 React와 Spring의 중간 단계라고 생각하시면 되고 구성은 Router(프론트에서 받은 요청, 지금은 Controller 분리한 상황), Api(백엔드 요청 로직)으로 구성 되어있습니다. 궁금한 부분 다른 분들의 프로젝트를 봤을 때 Controller에서는 try~catch로 오류를 체크하는데 Service에서는 Promise 객체를 반환만 할 뿐 체크하는 로직은 없었습니다. 여기 프로젝트에서 Api와 Service의 의미가 다르지만 Promise 그대로 반환하면 return 타입이 Promise<any>로 설정 될 수 밖에 없습니다.(타입 설정 불가) 그리고 Controller에서 데이터를 검증해야 하고 res.data로 받아야 될 수 밖에 없습니다. 이렇게 하면 body와 header 등 응답에 필요한 부분을 받을 수 있지만 과연 이게 맞는 것인지 의문이 들어서 같이 나누고자 글을 남깁니다. 정리 1. Api(NodeJS에서 Spring으로 요청하는 로직)에서 Controller와 동일하게 예외 처리해야 되는지 2. Api에서 검증을 수행하고 res.data를 던져도 되는 부분인지 응답을 어떤 형식으로 처리하는지(만약 header의 값이 필요하면 같이 객체로 묶어서 return 해야 함) 코드 예시(해당 코드는 회사와 관련 없으며 이해를 위한 코드 입니다)

개발자

#express

#예외처리

#모노레포

답변 1

댓글 0

조회 212

2년 전 · 김하림 님의 답변 업데이트

try catch 가 예외처리가 맞나요?

제가 알기로 try catch는 오류가 아니라 예외가 발생했을 때 잡아주는 걸로 알고 있는데 아래 코드에서 axios 콜에서는 응답을 받으면 성공인거 아닌가요?? 근데 axios에서 400대 코드를 주면 캐치로 넘어가는데..ㅠㅠ

개발자

#trycatch

#axios

답변 3

댓글 0

추천해요 1

조회 2,194