본문 바로가기

verdantjuly/Today I Learned

TIL 20230714

728x90

Event

PM 2:30 산삼 팀 회의

 

생활 계획표

 

PM 2:30 산삼 팀 회의

PM 12:00 취침

 

이번 주 목표

CRUD + 로그인 기능을 포함한 뼈대 완성

오늘 목표

소켓 구현

오늘 한 것

TIL 작성

TIL 리뷰

소켓 구현

 

1. 프론트 엔드 없이 소켓을 실행할 수 있는가?

문제

프론트 엔드를 작성하지 않고 소켓을 이용하고 싶다

시도 

일단 소켓을 작성한다

const WebSocket = require('ws');
module.exports = server => {
  const wss = new WebSocket.Server({ server });
  wss.on('connection', (ws, req) => {
    const ip = req.headers['x-forwarded-for'] || req.socket.remoteAddress;
    console.log('새로운 클라이언트 접속', ip);
    ws.on('message', message => {
      console.log(message.toString());
    });
    ws.on('error', error => {
      console.log(error);
    });
    ws.on('close', () => {
      console.log('클라이언트 접속 해제', ip);
      clearInterval(ws.interval);
    });

    ws.interval = setInterval(() => {
      if (ws.readyState === ws.OPEN) {
        ws.send('업데이트 된 내용 (3초 마다 드립니다)');
      }
    }, 3000);
  });
};

해결

프론트 엔드를 작성하지 않고는 소켓을 이용할 수 없다.

소켓은 양방향 데이터 통신이기 때문이다. 

그렇게 때문에 클라이언트 쪽에서도 접속했다는 정보를 보내 주어야 한다.

thunder client로는 구현하기 어렵다.

 

알게 된 점

소켓은 양방향 데이터 통신이다

 

2. 트랜잭션이란?

문제

트랜잭션이 뭔지 정확하게 모르겠다.

시도

예상 : 트랜잭션은 쿼리들의 묶음인가?

해결

트랜잭션은 실행 단위의 묶음이다.

알게 된 점

select문을 여러 번 쓸 때 트랜잭션을 사용할 수 있다.

select 문을 한 번만 쓰면 트랜잭션을 사용할 필요가 없다. 

 

 


정리 

 

소켓은 양방향 데이터 통신이다

 

select문을 여러 번 쓸 때 트랜잭션을 사용할 수 있다.

select 문을 한 번만 쓰면 트랜잭션을 사용할 필요가 없다. 

 

 

체크리스트

[ ... ] 예쁜 말로 협업하였는가?

더 예쁜 말로 하자

[ O ] 12시간 동안 몰입하였는가?

[ O ] 코딩 시 복사 + 붙여넣기를 하지 않았는가?

[ ? ] 친절한 개발자였는가?

더 친절해지자

[ ? ] 오늘을 평가하였을 때 주니어 개발자가 될 수 있겠는가?

항상 좋은 것들만 눈에 담고 말하자 같이 일하고 싶은 사람이 되어야 한다

KPT

Keep

몰입하려고 노력함

Problem

조급함

Try

급하게 넘기지 않기

소감

소켓 열심히 해 보자

 

 

튜터 님께서 질문을 명확하게 하는 연습을 통해 말을 조리있게 해야 한다고 하셨다.

왜냐하면 면접에서 답변을 조리있게 하지 못하면 모르는 것으로 판단될 수 있고

조리있게 말하지 못하는 사람은 협업을 해나가는 것이 많이 어렵기 때문이다.

이 부분을 개선하자.

 

'verdantjuly > Today I Learned' 카테고리의 다른 글

TIL 20230716  (0) 2023.07.16
TIL 20230715  (0) 2023.07.15
TIL 20230713  (0) 2023.07.13
TIL 20230712  (2) 2023.07.12
TIL 20230711  (0) 2023.07.11