예를들어
내가 자바나 스위프트, 다트, 리액트네이티브등을 이용해서
어플리케이션 ui를 만들었어
그럼 이제 사용자들이 어플리케이션을 사용해서 글을 쓰거나
혹은 사진을 올리거나 할거아니야
그 데이터들이 최종적으로 데이터베이스에
올라가는거까지는 알겠는대
ui <->데이터베이스
이렇게 바로 다이렉트로 가는건 아닐거같고
찾아보니까 백엔드가 go도있고 자바도있고 등등있더라고
만약 ui가 자바로 짜여졌고
백엔드언어를 go로 채용한다고 하면
서로 언어가 다르기때문에 뭔가 해줘야하는작업이
필요할거같은대 아니야?
그리고 어플리케이션과 데이터베이스 사이에서
일어나는 데이터 통신을
중간에 웹서버가 처리해주는거야?
구글링해봤는대 키워드를 뭐라검색해야하는지 잘모르겠어서
물어봄
17개의 댓글
무분별한 사용은 차단될 수 있습니다.
티벳여우
비전공자임?
3 tier architecture 검색해보면 됨
정소민
서바 개발자인대 프론트에대해 아는건 완전 무임
티벳여우
프론트엔드와 백엔드 간에 언어 차이는 전혀 문제가 안됨
보통 아래와 같은 구성으로 돼있을텐데
Frontend(Web browser) →[HTTP/HTTPS]→ Backend(WEB Server/WAS) →[Database Driver]→ DB Server(MySQL, ORACLE, PSQL...)
프론트엔드와 백엔드 관점에서는 HTTP/HTTPS 프로토콜로 주고받으므로 해당 프로토콜 형식만 알면 데이터를 주고받는데 전혀 문제가 없음. 프론트엔드에서 백엔드의 언어를 알 필요도, 백엔드에서 프론트엔드의 언어를 알 필요도 없음. 두놈은 데이터를 주고받는 프로토콜만 알면 되거든.
백엔드와 DB 사이에도 Database Driver 라고 말하는 ODBC, JDBC같은 애들이 인터페이스 역할을 해줌
WEB Server/WAS가 ODBC를 통해 SQL Server한테 쿼리를 하는 방식임. 대신 해당 드라이버는 개발 언어와 DB에 맞춰서 적용할 필요가 있음. 예로 JAVA에서 PSQL 서버에 쿼리를 날려 데이터를 받아오고 싶다 하면, PostgreSQL JDBC Driver가 필요한거임
여기서 데이터를 주고받는데 굳이 문제가 되는 점이 있다면 프론트엔드와 백엔드, DB간에 인코딩이 서로 달라서 문자가 깨지는 경우가 있음. 영어는 괜찮은데 한글은 죄다 깨져보이는 수가 있어서 주의해야함.
정소민
오 자세한 설명고마워. odbc, jdbc는 업무때문에 자주 보긴했는대 어플개발은 첨이다보니 어떻게 이해해야할지몰라서ㅋㅋ
눈물이주룩주룩
"
만약 ui가 자바로 짜여졌고
백엔드언어를 go로 채용한다고 하면
"
앱에서 자바로 짜도 결국 xml로 변환되지 않나?
쨋든 둘이 동일한 프로토콜로 데이터를 주고 받겠지
정소민
그것까지는 잘모르겠어. 자바를 사용안해봐서.단순히 예를든거거든...
킹킹킹
222
대뇌
만약 ui가 자바로 짜여졌고
백엔드언어를 go로 채용한다고 하면
서로 언어가 다르기때문에 뭔가 해줘야하는작업이
필요할거같은대 아니야?
-> 어차피 HTTP 통신하는데 언어의 종속성이 무슨 상관이닝
정소민
지금 찾아보니까 백엔드 프레임워크로 서버를 개발하면 결국 json이나 http등 같은프로토콜을 사용해서 통신하니 문제없겠다ㅋㅋ 이해했음
대뇌
ㅇㅇ 너가 크롬 쓸 때, 엣지 쓸 때, 파이어폭스 쓸 때
네이버 접속 주소가 다르지 않은거처럼
어차피 세상은 인터페이스임
서로 주고 받는 요청만 규정된다면(프로토콜)
언어는 노상관
REST API 찾아보세용
정소민
어플만들때는 보통 어떤 프로토콜이용해? 웹은 http겠지만 앱은json이려나
대뇌
보통 둘 다 http 야
정소민
오 그렇구나 고마웡
Gbps
보통은 http 안에 json 로 데이터전송하거나, http 안에 xml 로 하거나,
http 는 송/수신에 목적을둔 프로토콜이고 json, xml 는 오브젝트 표현에 중점을 둔 형식이고.
심심해서 내방식대로 설명해보면 서버 ~ 클라간의 통신은 어짜피 글자라서 ( 정확히는 010101 이겟지만)
그 글자의 규격을 '프로토콜'이라고 하는거임, 결국에는 go 로하던 c로 하던 네트워크에 '프로토콜'에 맞는 형식으로 글자 찍어내기만 하면되는거임
그래서 tcp 위에 송/수신에 맞는 프로토콜은 대표적으로 http 이고, 데이터를 보기좋고, 스윗하게 표시해주는 json, xml 를 데이터로 실어서 보내는거임
결국에는 http 프로토콜, json형식으로 들어오는 글자들을 잘 분석해서 원하는 동작으로 작동되게하는 언어마다의 라이브러리가 있으니 그걸 가져다가 쓰면되는것.
유저가 게시글 작성버튼을 누르는 시나리오로 보자면
프론트엔드에 사용한언어에서 백엔드로 HTTP프로토콜이용해서 백엔드로 전송해주면 백엔드의 웹서버(http프로토콜에특화된놈들)이나 기타언어들의 웹서버 라이브러리(언어마다 무조건있음)애들이 내용받아서 가공해서 기능수행하고, 그걸 이제 또 DB서버에 넣으려면 DB들만의 프로토콜 처리하는 [Database Driver]에 전달해서 올바르게 처리하는거임 ( Database Driver 는 나도 정확히는 모르겟다 )
정소민
오... 그렇구나 http안에 json형태는 첨알았내 고마웡
대뇌
정확히 얘기하면 tcp 위에 http 가 돌아가는거고
서버와 클라간 tcp 연결과정은 3 way handshake 찾아보면 됨
은둔형외톨이상담은국번없이1388
앞에서 뭘 쓰건 DB는 JDBC 같은 자기네 Driver API만 받음
어느 레이어에서 DB를 찌르건 그 언어에서 쓸 수 있는 API 랩핑해놓은 라이브러리 불러다 쓸테고
그런 라이브러리들이야 수없이 많고 자주 바뀌니깐 프론트할 거 아니면 딱히 신경 쓸 필요없음