전체 글

더 성장하기 위해 어떤 것을 더 배울 수 있는지 생각해 보았습니다. 안양시장 디벨롭하기 - 최대한 많은 클라이언트 수용해보고 기록하기 - 최대한 빨리 데이터 처리해보고 기록하기 - AWS 배포 해보기 - 로그 잘 남기는 요령 습득하기 회사에서 배울 수 있는 기술 습득 - Redis - 암호화 기술 - AWS 사용 노하우 습득 막연하게 하면 좋겠다 싶은 것들 - 많은 사람들 앞에서 발표하기 - 오픈소스 기여 - 영어 공부 - 기술 스터디를 통한 레퍼런스 메이킹 ? 내년에 합류할 프로젝트를 위해 - AWS에 서버 배포 해보기 경쟁력 있는 개발자가 되기 위해서 - 포트폴리오 웹 제작 - 알고리즘 대회 수상 ? (투자하는 시간에 비해 별로 안좋은듯) - 대기업 근무 경험 ? - 유명한 인디 게임 원년맴버 ? -..
신입 개발자가 작성한 연구일지입니다. 이때 오해하고 있던 잘못된 정보가 포함되어 있습니다. 이번에는 수신된 json 을 역직렬화 시켜 다시 클래스로 재조립했습니다. 가장 쉬운 방법인 JsonConvert 를 사용한 코드입니다. static async Task ReceiveAsync(Remote remote) { int length = await remote.socket.ReceiveAsync(remote.receiveBuffer, SocketFlags.None); string rcv = System.Text.Encoding.UTF8.GetString(remote.receiveBuffer, 0, length); if (rcv == "" || rcv.Length == 0) return (false, null..
어제는 회식이 있는 날이었습니다. 한잔 두잔 하며 달아오른 분위기에, 드디어 사수분과 편하게 이야기를 할 수 있는 분위기가 형성되었습니다. 저는 사수분께 이렇게 물었습니다. 제가 이 일을 더 잘 하기 위해서는 어떻게 하면 좋을까요? 사수분께서는 잠시 당황하시더니 이렇게 대답하셨습니다. 텍스트로 일목요연하게 상황을 설명하려고 해 보세요. 대답을 듣고 나자, 제가 한 질문이 어떤 힘을 가지고 있는지 깨닫게 되었습니다. 이 질문은 '일을 잘 하는 사람이 되는 마법의 질문' 입니다. 사실 저는 이 질문을 해 보라고 권유 받고, 대답을 듣기 전까지 이 질문이 이렇게까지 많은 역할을 할 수 있을지 알지 못했습니다. 이 질문은 굉장히 정중한 방법으로 제 단점이 무엇인지 사수에게 여쭐 수 있게 했고, 다음 목표를 세울..
신입 개발자가 작성한 연구일지입니다. 이때 오해하고 있던 잘못된 정보가 포함되어 있습니다. 이번에는 채팅 서버 구현을 위해 프로토콜을 추가해보도록 하겠습니다. 프로토콜은 두 프로그램(서버, 클라이언트)가 통신하기 위해 약속한 말의 형식입니다. 데이터를 보냈을 때, 받는 측과 보내는 측은 서로 '뭘 하려는 데이터'인지와 '그 작업을 하기 위해 어떤 데이터를 보냈는지'와 기타 보낼 데이터에 대한 약속을 해 두어야 합니다. 프로토콜을 지정함으로써 어떤 데이터를 주고받는지 명확하게 분류할 수 있습니다. 저는 Request 프로토콜과 Response 프로토콜을 따로 만들도록 했습니다. 각 프로토콜을 만들어 상속받고, 프로토콜의 ID 를 열거체로 선언했습니다. public abstract class Protocol..
신입 개발자가 작성한 연구일지입니다. 이때 오해하고 있던 잘못된 정보가 포함되어 있습니다. 머릿말을 끝으로 옮겨봤습니다! 그게 더 깔끔한 것 같네요 이번에는 오류를 없애 보려고 합니다. 클라이언트가 종료되어도 자꾸 스레드풀에 반납이 되지 않는 에러를 해결하기 위해 코드를 추가해 보았습니다. 문제 영상 클라이언트를 종료해도 오브젝트 풀에 반납이 되지 않고 있습니다. 1. 오브젝트 풀에 노드를 돌며 커넥션이 끊어졌는지 확인하는 코드를 추가하고 2. 메인 스레드에서 받는 입력으로 실행하도록 변경했습니다. 그러자 반납이 잘 됩니다. 그런데 이렇게 작동시키니 반복문 실행에 문제가 있네요. 코드를 개선했습니다. 이제 이코드를 주기적으로 실행시키도록 하겠습니다. 매 시간마다 실행시키는 것보다는 새로운 연결을 감지할 ..
· Server/C#
프로그램을 비정상 종료하면 에러가 뜰때가 많습니다. 이러한 경우의 에러를 없애는 방법 몇가지에 대해 소개드리겠습니다. 제가 발견한 방법은, 비정상 종료 시 호출되는 이벤트에 콜백 메서드를 추가하는 것이었습니다! 제가 찾은 이벤트는 두 종류입니다! Console.CancleKeyPress 사용 - Stop 버튼을 눌러 프로그램을 종료한 경우 - Ctrl + c 를 눌러 프로그램을 종료한 경우 using System.Diagnostics; using System.Runtime.CompilerServices; using TCPClient; class Program { private static List clients = new List(); public static void Main(string[] args)..
개발자 재은
개발자 재은