이번에 진행하는 프로젝트에서 채팅 서버 관련 개발을 담당하게 되어 학습한 내용을 정리한 포스팅입니다. 채팅 서버 관련 레퍼런스를 참조하며 클론코딩을 진행해보는 과정에서 아래와 같은 문제점을 발견했습니다. 단순 WebSocket만을 통해 채팅 서버를 구현하게 될 경우 해당 메시지가 어떤 요청인지 어떻게 처리해야 하는지에 따라 채팅룸과 세션을 일일이 구현해야함 메시지 발송을 관리하는 추가 코드 필요 이런 단점들을 STOMP 프로토콜을 활용하여 메시징을 효율적으로 처리하여 서버를 고도화할 필요가 있다고 생각했고 다음은 학습한 내용을 정리한 부분입니다. STOMP STOMP란? - Simple Text Oriented Messaging Protocol - 메시지 전송을 효율적으로 하기 위한 프로토콜 - 기본적으..
프로젝트를 진행하면서 Gerrit을 통한 코드리뷰를 해야하는 상황이 생겨 Gerrit이 무엇인지와 어떤식으로 활용을 해야할지 정리가 필요하다 생각해 포스팅함. Gerrit이란? 게릿(Gerrit)은 무료 웹 팀 코드 협업 도구. 소프트웨어 개발자가 팀에서 웹 브라우저를 사용해 소스 코드의 다른 사람의 수정 사항을 검토하거나 변경 사항을 승인 또는 거부할 수 있음. Gerrit은 코드 리뷰를 자동화와 동시에 강제성을 부여함으로써 기능개발을 완료한 Commit들에 대해 원격 저장소로 Push를 할 때 자동으로 지정된 리뷰어에게 알림이 전송되며, 리뷰어는 웹 브라우저를 통해 리뷰를 진행함. 이 때 코드 리뷰를 통해 부여된 점수가 일정 수준 이상이 될 때 실제 소스코드에 반영이 이루어짐. Feature Gerr..
문제 https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X www.acmicpc.net 풀이 자료구조 스택을 활용하여 풀이 접근법 temp라는 임시 변수를 활용. 여는 괄호의 경우 Stack.Push() temp *= 2 혹은 temp *=3 → 여는 부분에서 곱하거나 더할 값을 temp변수에 누적 닫는 괄호의 경우 Stack.isEmpty() 체크 각각의 괄호에 따라 결과값에 temp값 누적 및 temp값 감소 temp /= 3 or temp /= 2 소스코드 impor..
본 포스팅은 인프런 공룡책 강의를 기반으로 한 스터디 개인 정리를 위한 포스팅입니다. 잘못된 부분이 있다면 언제든 지적해주시면 감사하겠습니다! 1. 프로세스 동기화 동시다발적으로 실행되는 프로세스와 쓰레드들은 서로 협력하면서 영향을 주고받게 되는데 이 과정에서 자원의 일관성을 보장해야 함. 프로세스 동기화란 ? 실행순서 제어 : 프로세스를 올바른 순서대로 실행하기 글 쓰는 프로세스가 먼저 실행된 후 읽는 프로세스가 실행되어야 정상적으로 데이터가 넘어가기 때문. 상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 Bank account problem 프린터처럼 한 번에 하나의 프로세스만 접근해야 하는 자원 Producer & Consumer Problem 공유 자원과 임계 구역..