내일배움캠프
-
프로그래머스) 멀쩡한 사각형 풀이 (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. 과제 진행 간 문제점요약) 검증 방식을 개선할 방법 고려하기: - 아이템 획득 시 마다 서버에서 점수를 알려주는 부분. 서버에서 일괄로 점수 목록을 보내..
-
강의 과제) 개인 학습 시간 정리, 게임 서버 개발자가 되고 싶은 이유Random Notes 2024. 6. 12. 15:37
1. 개인 학습 시간 정리알고리즘 코드카타 어떻게 하고 있나? 알고리즘 코트카타 문제를 아침마다 풀고 있습니다. 잘 풀리는 날에는 2~3개씩 풀고 아무리 못해도 최소 한 문제는 풀도록 하고 있습니다. 풀이 방법을 모르겠는 문제의 경우 필요한 알고리즘의 학습을 선행하고 있습니다. 예를 들면, dijkstra 알고리즘으로 풀어야하는 문제인데 해당 알고리즘을 모른다면 풀 수 없기 때문에 dijkstra 알고리즘이 무엇인지, 어떤 식으로 구현되는지를 우선적으로 공부하는 방식입니다. 예전에 알고리즘 분류 별 공부를 위해 백준 사이트의 단계별 학습 문제를 풀었던 적이 있는데, 이걸 다시 한 번 도전해볼까 생각 중입니다. 개인 학습 시간에는 어떤 방식으로 공부하고 있나? 매 주 주어지는 과제를 해결하면서 과제에서 ..
-
[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 함수를 이용하는 방..