개인 포트폴리오 사이트를 제작하면서 모든 것을 프론트엔드 서버에서 보내주기 보다는 백엔드 서버와의 통신을 통해서 데이터를 받아오면 더 좋은 사이트가 될 것 같아서 express를 통해서 백엔드 서버를 구축하였다.
express에서는 사용자의 요청에 대해 데이터를 전송할 때, res.send()나 res.json()을 사용해서 사용자에게 데이터를 전송한다.
두 메소드 모두 사용자에게 데이터를 전송하기 위해서 사용하는 메소드라는 점에서 같지만 작동하는 방식에서 차이점을 보인다.
문자열 형태의 데이터는 바로 전송하지만, 객체 형태의 데이터의 경우에는 전송하기 위해서 JSON 객체를 생성하고 해당 JSON 객체를 문자열로 변환하여 데이터를 전송한다.
두 메소드를 실행했을 때, 호출되는 함수의 모습을 보면 다음과 같다.
위의 세가지 형태가 주로 사용될텐데 주목할 점은 세번째 케이스로 object 형태의 데이터를 send 메소드로 전송할 경우 json을 호출하고 send를 다시 호출하는 형태로 불필요한 과정이 추가되어 결국 서버에게는 불필요한 리소스의 낭비가 된다.
두 메소드 모두 결국에는 같은 결과를 가져온다.
하지만 보내려는 데이터의 형태에 따라서 어떤 것을 사용하는게 좋을지는 나온 결과라고 생각한다.
text는 send!
object는 json!