항해99

항해99/TIL

2021-08-28 항해99 TIL

오늘 한일 하루가 산만했습니다. 구현해야 할 업무는 코드를 작성하는 것이 아닌 코드 최적화, 부하 테스트, CI / CD 등 구조를 변경하는 등 효율적인 서버를 구현하는 업무만 남아있습니다. 부하 테스트를 진행하며 새로운 지식을 습득하는 과정에서 어떤 업무부터 먼저 진행해야 할지 정하지 못해 프로젝트 진행 속도가 상당히 느려졌습니다. 점심이 되기 전 정신을 차리고 남은 업무를 순서에 맞게 정리하였고, 적용해야 하는 기능과 해당하는 기능을 구현하기 위해 어떤 것이 선행되는지 정의해 남은 시간을 효율적으로 보낼 수 있었습니다. Artillery 모듈을 사용해 부하 테스트를 진행하였습니다. 기존에는 모노리스 서버로 구성하여 MySQL 서버에서 부하가 발생할 경우 EC2 서버도 멈춰버리는 상황이었지만, AWS ..

항해99/TIL

2021-08-27 항해99 TIL

오늘 한일 트러블 슈팅 문서는 계속 추가되고 있습니다. 프론트 엔드 서버를 배포할 때마다 매번 모든 기능을 확인하고 있지만, 일부 모바일 기능에서 오류가 발생하거나, 회원가입이 실패하거나, 분기가 제대로 설정이 되지 않거나 등 많은 오류가 발생하였고, 발생한 오류와 사용하면서 불편했던 점을 정리해 트러블 슈팅 문서에 추가하고 있습니다. 핵심적인 기능에 문제가 생기는 경우는 발생하지 않아, 오류를 수정하는 데 많은 시간이 걸리지 않지만, 단순한 오류가 자주 발생해 프론트 엔드 코드 리뷰를 진행해 구조를 탄탄하게 보강해야 할 것 같습니다. 마지막 팀 주간 회의가 진행되었습니다. 회의를 진행하기 9분 전 회원가입 오류 및 Socket 오류를 수정하였고, 간신히 AWS S3에 빌드된 서버를 Cloud Front..

항해99/TIL

2021-08-26 항해99 TIL

오늘 한일 고객 피드백을 받았습니다. 일반 사용자들이 아니라 우선 개발자 지인분들에게 실전 프로젝트 사이트를 소개해주었고, 여러 가지 피드백을 받았습니다. 메인 페이지 구성부터, 대화방까지 상당히 많은 문제점에 대해 지적을 받았지만, 가장 큰 문제점은 회원가입이 정상적으로 동작하지 않는 문제점이었습니다. 회원가입의 직관성과 분기가 제대로 설정되어있지 않아 일반 사용자 입장에서는 회원 가입이 성공했는지, 실패했는지 확인하기 힘들었고, 회원가입 실패 메시지가 정상적으로 출력되지 않아 실패했음에도 성공했다는 메시지가 출력되어 계속 로그인을 한 상황도 발생하였습니다. 해당하는 피드백을 받은 아침에 프론트 엔드 분들에게 받은 피드백을 전달해 드렸고, 문제점을 수정하였습니다. AWS RDS로 데이터를 이관하였습니다..

항해99/TIL

2021-08-25 항해99 TIL

헤쳐모여 moyeora.org 오늘 한일 React.js 트러블 슈팅 문제를 마무리하였습니다. 아침까지만 하더라도 트러블 슈팅 문서에 작성된 내용이 전부 수정되지 않아 배포할 수 없었고, 남아있는 문제에 대해서 프론트 엔드 분들과 작성된 코드를 보면서 수정하였습니다. 상당히 많은 문제가 발생했었는데, 회원가입 시 프로필 이미지를 설정하지 않을 경우 회원가입에 실패하는 상황이었습니다. React.js 코드를 분석해본 결과 null 처리를 설정하지 않아 발생하는 오류였고, if 문을 사용해 분기점을 만들어 문제를 해결하였습니다. 아침부터 배포를 시작한 저녁 9시까지 수정해야 할 부분이 계속 발생해 멈추지 않고 문제 해결에만 시간을 할애한 것 같습니다. Socket 오류를 수정하였습니다. 생성되지 않아야 할 ..

항해99/TIL

2021-08-24 항해99 TIL

오늘 한일 트러블 슈팅 문서에 작성된 오류들이 전부 수정되지 못했고, 배포에 실패했습니다. 상당히 화가 많이 났습니다. 트러블 슈팅 문서를 작성한 지 4일이 넘게 시간이 지났고, 기능을 추가하는 것이 아닌 동작하지 않고, UI가 깨지는 오류들만 작성하였는데, 구현하지 못했다는 것이 상당히 화가 많이 났습니다. 작성된 트러블들이 전부 수정되지 않고, 배포하게 될 경우 사용자도 동일하게 피드백을 제공할 것이 확실하기 때문에 섣부르게 배포를 진행할 수 없었습니다. 만료 기간을 당일 아침까지로 잡아놨었던 것을 내일 아침까지로 미뤘고, 현재까지 작성된 프로젝트에 문제점을 다시 테스트해보았고, 문제점을 트러블 슈팅 문서에 추가로 작성하였습니다. 내일은 배포할 수 있기를 간절히 바라고 있습니다. React.js의 통..

항해99/필기노트

[필기노트] Redis-cli ZSET, MULTI EXEC Transaction

ZRANGEBYSCORE (v.1.0.5) ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] WITHSCORES : 요소와 Score를 모두 반환한다. (v.2.0) 시간복잡도 : O(log(N)+M) N : zSet의 요소 갯수 M : 반환되는 zSet 요소 갯수 M이 동일하다면 (LIMIT 설정) O(log(N))이 될 수 있다. ZRANGEBYSCORE geo:locationsExpire -INF +INF WITHSCORES result) '1' result) '3600' geo:locaitonsExpire 이름의 zSet의 모든 멤버와 Score를 조회한다. 1 멤버에 저장된 3600 Score를 출력한다. 만료 이벤트 만료 시간 설정: E..

항해99/TIL

2021-08-23 항해99 TIL

오늘 한일 Node.js 서버에서 사용하는 Redis 모듈의 사용 방법을 확인했습니다. 기존에는 SET, GET, ZADD와 같이 모듈에서 지정된 Command만 사용되는 줄 알았는데 Redis의 공식 Document에서는 별도의 방법이 지정되어 있지 않았고, 모든 명령을 사용할 수 있다고 소개되어 있었습니다. 그래서 ZRANGEBYSCORE과 같이 -inf, +inf, 와 여러 개의 인자가 들어가는 함수를 사용해보았고, 정상적으로 조회되는 것과 MULTI EXEC Transaction을 이용해 여러 개의 명령을 한 번에 정의할 수 있는 기능도 사용할 수 있었습니다. Reids-cli 대다수의 기능을 사용할 수 있는 것을 확인하였고, 한정된 명령어를 사용할 수 있었던 이전과는 다르게 논리 구조를 탄탄하게..

항해99/TIL

2021-08-22 항해99 TIL

오늘 한일 주말을 맞이해 열심히 휴식을 취했습니다. 저번 주와 동일하게 멘탈 관리를 위해 일주일 만에 집을 벗어나 산책을 다녀왔습니다. 이번 주는 큰 문제가 발생하지 않았지만, 팀장이라는 직책으로 모든 프로젝트를 총괄해야 하는 부담감이 존재하기 때문에 마음을 힐링하는 시간을 가질 수 있도록 하였습니다. 코딩 테스트를 준비하였습니다. 오늘의 목표는 단순히 문제를 많이 푸는 것이 아니라 몇 달동안 잊고 있었던 자료구조와 Python, Javascript의 데이터를 가공하는 문법에 대해 중점적으로 학습하였습니다. Python을 사용하였을 때 당연하게 느껴졌던 데이터 가공 방법들이 Javascript로 넘어오면서 미묘하게 다른 부분이 존재해 코드를 구현하면서 버벅댐이 있는 것 같습니다. 오늘 배운 것 코딩 테스..

항해99/WIL

[항해99] WIL 11주차 - 실전 프로젝트 5주차 (후기)

서론 7/23 ~ 9/3의 실전 프로젝트가 진행 중입니다. AB180의 협력사 발표가 진행되었습니다. 디자이너 회의가 진행되었습니다. 팀장 주간 회의가 진행되었습니다. 일정 7/23 (금) ~ 9/3 (금) : 실전 프로젝트 진행 8/18 (수) 19:00 ~ 20:30 : AB180 협력사 발표 8/19 (금) 20:30 ~ 22:00 : 디자이너 회의 8/20 (토) 13:30 ~ 14:00 : 팀장 주간 회의 실전 프로젝트 5주 차 7/23 ~ 9/3 : 실전 프로젝트 5주 차 진행 중입니다. 모든 회의록을 기록하였습니다. 트러블 슈팅 문서를 작성하였습니다. 종료 시간이 지난 모임 삭제 Event Scheduler 구현하였습니다. TRIGGER, PROCEDURE, EVENT 문서를 작성하였습니다...

항해99/TIL

2021-08-21 항해99 TIL

오늘 한일 MySQL에서 발생한 max allowed packet 오류를 해결하였습니다. DB를 조회할 때 수많은 Sub Query, JOIN을 사용해 한 번의 통신으로 해결하려 했던 Query 부분에서 오류가 발생하였습니다. 내부적으로 Sub Query를 8건, JOIN을 4건, GROUP BY를 3건 사용하였고, DB에 부하를 주고 있는 것을 확인하였습니다. 어떤 방식으로 해결해야 할지 알지 못해 SQL 튜닝에 관련된 자료를 찾아보았고, 가장 핵심적인 문장을 발견했습니다. 'DB에서 데이터 가공을 하는 것보다 Server에서 데이터 가공을 하는 것이 현명하다'라는 문장이었습니다. 기존에는 Sequelize의 Raw Query를 통해 통신 횟수를 줄이려고 했었는데, 코드 구성방식을 수정해 최대한 DB에..

커스텀 리
'항해99' 카테고리의 글 목록 (3 Page)