ceramide
207
2022-06-23 18:03:01
6
232

프론트엔드, 백엔드 구조 질문


학부생인데 기초적인 게 헷갈려서요


프론트엔드 (HTML, CSS, JAVASCRIPT) → 백엔드 쪽 말고 다른 외부 API 서버 (API로 요청)

↕ (API로 백엔드 쪽으로 요청 또는 SQL로 데이터 요청)

백엔드 (WEB Server, WAS) → 언어/프레임워크 → Rest API 개발

DB (DATA)


위와 같은 구조 맞나요? 자세히 질문 드리자면

1. 프론트엔드에서 우리 쪽 백엔드 말고 외부 API 서버로 바로 데이터를 받아오는 경우도 있나요?

2. 프론트엔드에서 백엔드 쪽으로 API가 아니라 SQL 문으로 그냥 DB 데이터를 받아오는 경우도 있나요?

3. 언어/프레임워크로 백엔드를 개발하는데 이때 백엔드란 웹 서버/WAS를 말하는 게 맞나요? 

0
  • 답변 6

  • 인성 절구로 빻음
    3k
    2022-06-23 18:05:24 작성 2022-06-23 18:06:13 수정됨

    1. 할 수는 있죠. 단 외부 API 하루 호출 건수가 제한되어있으면 그렇게 잘 안해요

    2. 아니요. graphql 말씀하시는거 아니면 보안상으로 좋지않아요

    3. WAS라고 생각하시면 됩니다.

  • ceramide
    207
    2022-06-23 18:10:49

    // 인성 절구로 빻음

    그럼 프론트엔드 측은 API를 통해 어떤 데이터를 요청만 할 수 있고 따라서 백엔드를 거칠 수 밖에 없으며 백엔드 쪽에서는 이를 위해 또 외부 API를 거쳐서 받아온 후 전달할 지, DB에 있는 데이터면 이를 DB에서 가져올 지 정하는 거 맞나요?

  • 인성 절구로 빻음
    3k
    2022-06-23 18:14:06 작성 2022-06-23 18:14:53 수정됨

    프론트에서 막 접근할 수 있으면 접근제어는 어떻게합니까요...

    어떤 데이터는 관리자만 접근가능하고(ex. 다른 사용자 전화번호) 어떤 데이터는 모두가 접근가능하다는 등 통제하려면 백엔드 거치는 방법 밖에 없습니다.


    그리고 프론트에서 DB 바로 접근하면 여러가지고 곤란해져요
    1. 프론트엔드 소스코드는 브라우저로 전송되기때문에 다 까서 볼수있다. 그러므로 db 연결하는 코드(주소, id, pw 등)을 까서 볼수있다.
    2. db의 connection 자원은 한정되어있으며 클라이언트(프론트)에서 접근할 시, 많은 사람들이 접근하면 브라우저 당 하나씩 connection을 할당해야함으로 모자르다

  • Unknown_
    916
    2022-06-23 18:20:50

    윗분님 정말 설명 잘하셨는데, 혹시 학부생이셔서 아직 잘 모르겠다 -싶으면요. 이렇게 생각하셔도 될 것 같습니다.


    1. 화면단에서 API 접근을 막는 이유 : 본인 집에서 옷 갈아입어도 되는데, 굳이 공원 한복판에서 홀라당 벗어서 내 속옷의 색을 다른 사람이 알 수 있다.

    2. 공원 부지는 한정되어있는데, 사람들이 자꾸 몰려들어서 너도나도 같이 옷을 갈아입는다. 각자 집에서 입히는 것이 낫다. (관리자는 각자 집에서 옷을 갈아 입히면 다 입었는지, 덜 입었는지, 뭐 입었는지 프라이빗하게 확인할 수 있음)

  • ceramide
    207
    2022-06-23 18:24:58

    // 인성 절구로 빻음

    답변 정말 감사합니다. 제대로 이해 할 수 있었어요!

  • ceramide
    207
    2022-06-23 18:27:00

    // Unknown_

    답변 정말 감사합니다 ㅎㅎ 비유가 와닿네요

  • 로그인을 하시면 답변을 등록할 수 있습니다.