최근 동향
하반기 공채 때 코딩테스트도 어려웠지만 생각보다 코딩테스트를 통과하고 갔던 면접에서 좋은 모습을 보여주지 못했다....
나 스스로도 그렇게 생각하기에 결과에 불만족하지는 않는다.
그렇게 상시 채용으로 가서 본 면접에서도 내가 했던 프로젝트에서 대해 깊게 생각해보지 못했다는 생각이 많이 들었다.
최근 어떤 스타트업 대표님과 단 둘이 밥을 먹었을 때 최대한 개발을 많이 해보라는 조언을 듣고 어떠한 개발을 해야하나 고민하게 되었다.
확실히 알고리즘이 코드 짜는 것애 대한 자신감과 생각에 도움을 주지만 워낙 재능이 없다 보니 슬슬 풀면 그냥 수능 공부하듯이 생각하는 것보다는 특정 알고리즘을 파악하고 대입하는 느낌이 왔기에 한계 부딪혀 도망치는 것도 맞다 ㅋㅋㅋ.....
뭐... 공채시즌도 아직 시작 하기전이기도 하고 스스로도 알고리즘만 푸는것 보다는 확실히 개발이란걸 다시 해보고 싶었다.
구조를 바꾸고 서비스를 교체하는 것 보다는 그냥 개발을 많이 하는 게 실력이 오를거 라고는 하지만 원래 기존에 존재했던 프로젝트에 구조를 아예 개편해서 시스템 구조를 바꾸면서 배우는 것도 많을 것 으로 생각해서 somethink 프로젝트를 리팩토링 하게 되었다.
CRDT 너란녀석.... 그냥 OT로 짤걸 그랬나
전에는 깔끔하게 들어가자마자 주제를 정하고 친구들끼리 코드를 공유하면 해당 코드에서 유저들끼리 회의하고 회의가 끝나면 퇴장하는 식에 간단한 서비스를 제공하고 있었다.
즉 우리는 모두가 협업하고 회의할 때 코드에 따른 자원공유와 서버에서의 중재 및 동기화 속도 개선 정도만 하면 되었다.
심지어 라이브러리가 동기화 자료구조를 제공하기에 자원에 대한 컨트롤이 그렇게 어렵지는 않았다.
유저라는 개념을 따로 만들어서 저장하고 그 유저가 어떠한 워크스페이스를 가지고 그 워크스페이스에 대한 데이터들을 데이터베이스에 저장하여 관리해 주려고 한다.
시간을 넉넉하게 있다면 모두가 피그마나 노션처럼 남들이 실시간으로 사용하는 자원 컨트롤에 대한 로직 및 알고리즘도 짤 생각이 있다.
현재는 데이터의 순서를 유지하는데, 정수 인덱싱을 사용하여 간단한 방식을 사용하고 그 후 데이터를 인코딩과 디코딩하여 동기화를 초점에 둔 방식으로 돌아가지만 이는 속도 면에서는 좋은 퍼포먼스를 보이진 않을 것이다.
다른 방식을 지금 당장 직접 대입한 것이 아니라 확답을 하지는 못하겠지만 그럴 것으로 예상된다....ㅋㅋㅋ
somethink의 서비스 방향을 크게 잡는다면 현재의 동기화 방식을 간단한 정수 인덱싱 방식이다.
시간이 된다면 소수 인덱싱 방식도 한번 도입하고 싶다. 즉 모든 동기화 알고리즘 라이브버리를 직접 짜보면 좋을 것 같다는 생각이 든다.
뭐.... 그만큼 어렵겠지만 기회가 왔으면 좋겠다.
그래도 같이 프로젝트 했던 프론트엔드 친구와 인연이 되어서 리팩토링을 진행하게 되었다.
초반에 모놀리식으로 중앙집중적이었던 코드를 mvc 패턴을 적용하여 분리를 하는중이다.
login부터 jwt 를 적용하는 부분에서 하루 이틀 정도 애 먹긴 했는데 로그인 회원가입 페이지를 완료했다.
Database
면접에서도 나를 땀나게 했던 Database...... 너란 녀석...
데이터베이스 설계도를 짰던 게 옛날이라 기억도 잘 안나고 다시 짜는 것도 좀 낯설었다.
일단 간단하게 User 테이블과 유저들이 socket 통신으로 사용하는 session에 대한 데이터를 판별할 Workspace 테이블 그리고 동기화 데이터가 들어갈 Content 테이블 정도로 생각하고 있다.
원래 그냥 User 테이블에 아묻따 넣어버리면 되지 않나 생각했는데 그러면 정규화라는 표현의 존재 의무가 사라지는 느낌이어서.... 분리하려고한다.
문제는 전에 redis를 사용해야해서 이론개념을 공부만 하고 적용하지 못했었는데
이번에 jwt 토큰을 사용하면서 Redis에 refreshToken이나 로그인 관련되어서 캐시 용도로 사용해 보려고 한다.
다시 블로깅 좀 해야겠다.....
맨날 공부하고 까먹는 것도 일상이라 기록의 중요성을 최근에야 좀 느낀거 같다.
내일이나 내일모레는 redis 기존 내용에 대해 상기해 봐야겠다.
'일상,취미' 카테고리의 다른 글
다시 시작해보는 TIL....1일차 (0) | 2024.06.04 |
---|---|
옵저버 패턴의 쓰임새 (1) | 2024.04.21 |
직접 구현 하면서 이해해보는 전략패턴 (0) | 2024.04.14 |
Somethink 리팩토링 현황 (0) | 2024.02.27 |
첫 블로그 시작! (0) | 2022.09.14 |