java

회고록

갑진년 연초 회고록 : 게임회사의 게임서버개발자 1년 돌아보기

갑진년 맞이 연초 회고록을 작성해 보려고 한다. 2023년 1월, 모바일 게임 회사에 지원을 하였다. 공고에는 php, golang, node.js, c, c++, docker, kubernetes, helm, redis, memcached, mysql 등과 같은 기술들이 적혀있었다. 공고를 보고 게임회사에서 서버 개발자는 어떤일을 하는지 몰랐어서, 검색을 해본 결과,, 두종류의 서버로 나뉘었다. 1. 실시간 기능이 필요한 소켓 서버 2. 일반적인 웹 서버 1번의 경우에는 예를 들자면, MMORPG인 리니지와 같이 수만명의 연결을 유지해 상호작용이 필요한 서버이고, 2번의 경우를 예를 들자면, 턴제게임인 세븐나이츠와 같이 혼자 플레이 하는 서버이다. (pvp와 같이 실시간 대전 서버의 기능이 필요하다면 ..

Dev/CS

[CS] 직렬화(Serialization), 마샬링(Marshalling)

Redis를 사용하는 코드를 분석하던 도중 직렬화와 관련된 설정이 있어, 이를 이해하고 넘어가고자 한다. 직렬화란 무엇일까? 직렬화란 Serialization으로, 데이터 구조나 객체를 파일의 형태 등으로 저장하거나 통신하기 쉬운 포맷으로 변환하는 과정이다. Serialization의 Serial은 ‘연속된’ 이라는 뜻으로, Serialization란 객체를 ‘연속된’ Byte Stream으로 변환하는 과정을 의미한다. Byte Stream으로 변환하는 과정이란, Primitive한 데이터로 변조하는 작업을 의미한다. 왜 Primitive한 데이터로 변조를 하는 과정이 필요할까? 객체는 여러가지의 자료형이 있는데, 그 중에서도 주소값을 가지고 있는 정보는 다른 시스템으로 보내봤자 의미가 없다. 즉, ‘주..

Dev/Language

[Language] 언어 분류(정적 타입 언어, 동적 타입 언어) 개념 정리

Language Classification 타입 언어는 정적 타입 언어와 동적 타입 언어로 나뉜다. 정적 타입 언어 변수의 타입이 컴파일 시간에 결정되어 고정되는 언어이다. 보통 컴파일 시간에 타입 검사를 진행한다. 정적 타입 언어의 예시로는 Java, C/C++, FORTRAN, Pascal, Scala가 있다. Java로 예를 들어 알아본다 String 타입으로 선언된 변수 name은 한번 타입이 선언되면 그 타입이 변할 수 없다. String name; // 변수는 선언된 타입을 가짐 name = "john"; // 값은 타입을 가짐 name = 32; // 변수는 타입이 변결될 수 없음동적 타입 언어 변수의 타입이 저장되는 값에 따라 실행 중에 바뀔 수 있는 언어로, 보통 실행 시간에 타입 검사를..

friendshipkim97
'java' 태그의 글 목록