스터디 진행 일시
날짜 : 4월 25일 (금요일) 시간 : 7시 ~ 9시 장소 : 강남(오프라인)


🔧 기본 서버 아키텍처 그리기

서버구조

서버 아키텍처 예시

  • 유저가 어떠한 서비스를 이용한다고 가정하고 DNS부터 서버에 어떻게 접속하는지 그려보자
    • 유저가 “naver.com”을 검색하면 ?
      • DNS에서 진짜 서버를 찾아갈 수 있는 서버 IP주소를 가져온다.
    • 방화벽을 지나 로드밸런서에 도착 ! 그리고?
      • 각 서버에서 작업을 진행 -> 캐시에 필요한 데이터가 있으면 캐싱, 없으면 DB
      • 읽기 작업이라면 Read DB / 쓰기 작업이라면 Write DB
      • 비정형 데이터라면 NoSQL
    • NAT는 어디에 그려 넣어야 할까?
      • 로드밸런스는 트래픽을 분산해서 서버에 넣는다.
      • NAT는 트래픽을 내보낸다.
    • 로드 밸런스의 트래픽 분산은 어떻게 이루어질까?
      • 여러 방식이 있겠지만 우선 하나라도 외워보자.
        • 라운드로빈 -> 카드 하나씩 분배하듯 트래픽 순차적 배분 !


Node.js 기초
  • 요즘 Node.js를 많이 사용하는 것 같아서 함께 공부해보자.
    • Meow Git에 자료 정리 후 발표
    • 1주차 : node -> router 생성하기 -> controller 만들기
        // Express 모듈을 불러옵니다.
        // Express는 Node.js에서 가장 많이 사용되는 웹 프레임워크입니다.
        // 마치 Spring Boot에서 @RestController로 HTTP 요청을 처리하듯, Express는 경로 기반으로 핸들러를 만듭니다.
        import express from "express";
        import users from "./router/user/route"
      
        // Express 애플리케이션 객체를 생성합니다.
        const app = express();
      
        // 사용할 포트를 정의합니다.
        // 보통 개발 환경에서는 3000 포트를 많이 사용합니다.
        const PORT = 3000;
      
      
        app.use('/users', users)
        // 서버를 지정한 포트에서 실행합니다.
        // app.listen은 Spring Boot의 `@SpringBootApplication`의 실행 부분(main 메서드)과 유사합니다.
        app.listen(PORT, () => {
        console.log(`✅ Server is running at http://localhost:${PORT}`);
        });