혹시 몰라서 잠깐 라우팅에 대한 설명 좀 하고 감
---
웹을 순수하게 c언어로 구현한다고 생각해봐
매 클릭마다 html을 일일이 띄워주는 식으로 개발해야겠지? html분기 관리도 if문으로 해줘야 할 거임.
생각만해도 피곤하잖아?
그래서 나온 게 라우팅임.
라우팅은 url로 코드를 실행시키는 걸 말함
아래 코드를 보자
@app.get("/")
def 홈():
return {"message": "여기가 메인 페이지야"}
@ <- 이게 붙으면 데코레이터라고 함.
@ 이후에 붙는 app는 지금 돌아가고 있는 해당 프로그램의 이름임. python app.py 뭐 이렇게 실행한 거지.
여기까진 안중요하고 그 다음에 나오는 get과 /가 본론이다
get은 유저가 요청했을 때 실행되는 코드란 의미고
'/'는 유저가 뭘 요청했느냐임. 현재는 유저가 /를 요청한 거지.
/가 아니라 /ping을 요청할 수 도 있음.
@app.get("/ping")
이렇게 간단히 작동하나 안하나 체크용으로 prig을 만들 수도 있을 거임.
내가 '컴퍼니.com' 란 도메인을 갖고 있고 이걸 DNS로 열었다면
유저가 주소창에 http://컴퍼니.com/ 이렇게 칠 시 "여기가 메인 페이지야" 라는 글자가 뜨고
http://컴퍼니.com/ping 이렇게 쳤으면 ping을 return으로 돌려받을 수 있다는 거지.
cURL나 리퀘스츠 같은 라이브러리를 쓰고 있다면
result = requests.get('http://컴퍼니.com/ping') 이렇게 할 시
반환값으로 핑을 받을 수 있음. result에 그 값이 들어있겠지.
이해되지?
내가 유저에게 보내는 경우면 POST를 쓰면 되고
이외에도 PUT이나 DELETE도 있음.
---
라우팅에 대해 이해됐으면 네 문제에 대한 답도 간단하겠지?
백엔드가 찐빠를 내서 id를 널값으로 보냈으면
def 우리백엔드폐급이네(id):
if 아이디==널:
logging.error("고객의 아이디로 널 값을 받았습니다.")
이렇게 하면 되고 고객에게 보여줄 메세지가 필요하면 별도의 html을 만들어
<!DOCTYPE html>
<html>
<head>
<title>서비스 오류</title>
</head>
<body>
<h1>죄송합니다.</h1>
<p>고객님의 정보를 불러오지 못했습니다.</p>
<p>잠시 후 다시 시도해주시거나, 고객센터로 문의해주세요.</p>
</body>
</html>
def 우리백엔드폐급이네(id):
if 아이디==널:
불러오기(서비스 오류.html)
logging.error("고객의 아이디로 널 값을 받았습니다.")
사람이 왤케 친절함 ㅇㅅㅇ
gpt레벨 질문아님?
ㅠㅠ 이걸 이제봤네 고마워 결국은 에러페이지를 보여줄 수 밖에 없나보네 아무래도 발표를 해야하는 상황이다보니 에러페이지는 없는 선택지였거든 어떻게든 정상적으로 작동되게 보여야한다고 생각해서 계속 귀찮게 한거같아 정말 고맙고 하는 일 잘 되길 바랄게
에러페이지 만든 건 네 잘못이 아님. 백엔드가 잘못한 거지.