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 |