개발일지/오류문제해결

tcp 서버 설계 경험

자코린이 2022. 6. 28. 00:17

*개인적인 경험에서 나온 글입니다. 다르게 생각하실 수 있습니다.*

*그 점은 다른사람도 볼 수 있게 댓글로 알려주세요.  *

 

실무 일을 하던 도중에 tcp 서버의 언어를 바꿀 일이 생겼습니다.

서버의 언어를 바꾸는 도중 tcp 서버의 설계에 대해 고민을 하게 되었습니다.

 

1. 여러개의 주소를 만들어 한가지의 데이터를 넘겨 제어할 것인지

2. 한개의 주소에서 받은 여러 종류의 데이터를 알고리즘으로 파싱하여 제어할 것인지

 

이 2가지의 경우를 고민하고 있는 도중에 팀장님이 다른 한가지 방법을 추천하였습니다.

 

그 방법은 서버에서 간단한 일만 처리하게 설계를 해봐라

그 이유는 서버의 안전성을 우선으로 생각하였기 때문입니다.

1. 서버에서 복잡한 로직을 실행할 시 오류가 날 확률이 높다.

만약 복잡한 로직을 통신서버에서 돌리는 도중 오류가 나면 많은 문제가 발생합니다.

2. 수정한 코드를 배포하기 위해 서버를 다시 실행해야 한다.

만약 파이썬을 사용한 tcp서버를 만들었고, 그 서버의 코드를 수정하여 올리면 그 전의 프로그램을 종료하고 다시 실행해주어야 합니다.

이 과정에서 데이터의 손실 등의 문제가 발생할 수 있습니다.

이 외에도 다른 문제점이 발생할 수 있습니다.

 

이 문제를 해결하기 위해 tcp서버는 최소한의 연결만 만들었습니다.

그러기 위해서 복잡한 알고리즘은 프론트나 저장 프로시저를 사용했습니다.

 

저는 간단한 tcp 서버를 만들었으므로 이 방법을 사용하였습니다.

더 빠르고 복잡한 tcp서버를 만드셔야 할 경우 다른 방법도 생각해보세요.

꼭 하나의 방법만 있는 것이 아니라는 것을 생각하셨으면 합니다.

 

긴 글 읽어주셔서 감사합니다.