스파르타내일배움캠프TIL
-
프로그래머스) 멀쩡한 사각형 풀이 (Java)TIL-sparta 2024. 6. 15. 16:32
62048 - 멀쩡한 사각형1) 문제 설명 요약 (원문은 링크 참고): 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 요약: 사각형의 가로 세로 길이 w와 h가 주어진다. 이를 1x1 크기의 정사각형 구역(cell)으로 구분하고 대각선으로 잘랐을 때 멀쩡한 형태로 남는 cell의 개수를 구하는 문제다. 조건: 1 2) 풀이 과정:// 처음 풀이import java.lang.Math;class Solution { public long solution(int w, int h) { long answer = (long) w * h; ..
-
[TIL] 심화 주차 개인 과제 제출 (D-Day)TIL-sparta 2024. 6. 14. 21:19
> Chrome Dino Web Socket Server 과제를 제출하고 미흡한 부분을 수정하면서, 과제 해설 영상을 기반으로 알게된 점 등을 정리해보았다. 학습 키워드: Redis, Node.js, express, socket.io 1. 완료한 과제 진행 사항1) 아이템 획득 어뷰징 검증 기능 구현: 아이템 획득 어뷰징 여부를 검증하는 로직이 기존에는 유저의 스테이지에 해금된 아이템인지 여부만 검증했다. 제출 후 시간을 좀 더 들여서 아이템의 spawn interval을 검증하는 로직을 추가했다. 우선 서버에서 아이템을 해금 처리할 때 새로운 아이템의 정보를 같이 넘겨주도록 설정한 뒤, 클라이언트 부분에서 해당 정보를 담은 객체를 ItemController 객체의 unlockedItems 배열에 추가해..
-
[TIL] 심화 주차 개인 과제 (Chrome Dino Web Socket Server) 진행 (D-1)TIL-sparta 2024. 6. 13. 23:01
학습 키워드: Redis, JS Class constructor, Singleton 1. 프로젝트 관련 사항1) JS Class에서의 Singleton: - JS에서 new를 이용하여 생성한 객체의 Class constructor 기본 return 값은 this다. 그런데 만약 constructor의 return 값을 별도로 생성한 static instance로 지정해준다면 해당 클래스 객체를 어디서 생성하든 항상 같은 instance를 return하여 singleton처럼 사용할 수 있게 된다. 프로젝트에서 클라이언트의 스코어 정보가 여럿 생성될 일은 없으므로 기존에 index.js에서 생성한 score를 export 하는 대신 이런 방식으로 구현하는 것이 좋겠다고 생각했다.// 구현 예시class S..
-
[TIL] 심화 주차 개인 과제 (Chrome Dino Web Socket Server) 진행 (D-2)TIL-sparta 2024. 6. 12. 22:15
학습 키워드: node.js, express, socket.io 1. 완료한 과제 진행 사항요약) 아이템 획득 interval 검증을 제외한 필수 요구사항 구현 완료 : - verification 작업을 별도의 파일로 분리하여 여러 handler들이 공통으로 사용할 수 있도록 변경 - 클라이언트에서 보내온 정보에 문제가 있는 경우, 혹은 서버에서 처리 과정 중 에러가 발생한 경우 유저의 접속을 강제로 종료시키도록 설정 (게임은 계속 플레이 되지만 정보가 더이상 서버로 넘어가지 않음) - 스테이지가 넘어갈 때 마다 새로운 아이템이 해금되는 기능 구현 2. 과제 진행 간 문제점요약) 검증 방식을 개선할 방법 고려하기: - 아이템 획득 시 마다 서버에서 점수를 알려주는 부분. 서버에서 일괄로 점수 목록을 보내..
-
[TIL] 심화 주차 개인 과제 진행 (D-3), 강의 수강 (Sharding)TIL-sparta 2024. 6. 11. 20:53
> 과제의 필수 요구사항을 진행하고, 저녁 강의에서 배운 내용을 간략하게 정리해보았다. 강의 노트가 게재되면 잘못된 내용이나 부족한 부분을 보강하도록 해야겠다. 학습 키워드: Database, sharding, XA Transaction, 2-Phase-Commit 1. 강의 내용1) Database Sharding: 샤딩은 데이터베이스를 물리적으로 나누는 작업을 의미한다. 이전 프로젝트 처럼 테이블 몇 개가 다른 데이터베이스로 가는 개념이 아니라, 하나의 테이블에 있는 데이터를 여러 개로 분리된 데이터베이스에 나눠서 저장하여 요청들을 병렬처리하는 개념이다. 2) How does it work?: 나누는 방식에는 modulo를 사용하거나, if else 로 구간을 나누거나, hash 함수를 이용하는 방..
-
[TIL] 스파르타) 심화 주차 강의 수강, 개인 과제 시작 (Chrome Dino Web Server)TIL-sparta 2024. 6. 10. 19:50
> 심화 주차로 진입함에 따라 새로운 과제가 발제되었다. Chrome Dino Runner 게임의 서버를 구현하면 되는데, web socket의 사용법과 OOP 및 layered architecure pattern에 익숙해지는 것이 주된 목표로 보인다. 학습 키워드: Node.js, layered architecture pattern, controller, service, repository, jest 1. Layered Architecture Pattern1) What is it?: 계층형 아키텍쳐 패턴은 크게 Presentation Layer, Business Layer, Persistence Layer, 그리고 Database Layer로 시스템의 기능을 구분하는 구조를 말한다. Controller..