Study/TIL(Today I Learned)

24.04.16 서버 개발기

에린_1 2024. 4. 17. 14:49
728x90

서버 개발기

회원가입을 구현하고 회원가입의 예외처리를 구현했다.

예외처리 목록

  1. 비밀번호가 다를 때
  2. 중복된 닉네임이 존재할 때
  3. 중복된 아이디가 존재할 때

이에 경우에는 그에 맞는 panel이 띄워지게 코드를 작성했다.

!https://blog.kakaocdn.net/dn/XKJWl/btsGG6Ytezb/jr3GwPFw8tco31ngowdNkK/img.png

회원가입 부분 코드

비밀번호 확인은 유니티 클라이언트에서 처리했고,

회원가입 부분에서는 닉네임 아이디를 검사하고 문제가 없다면 회원가입을 진행했다.

!https://blog.kakaocdn.net/dn/cK2c60/btsGGmHsimV/4KRlukV8KTJtogwG9yF6K0/img.png

닉네임 중복 확인

!https://blog.kakaocdn.net/dn/1HTHB/btsGFf29K0T/fpkcrbkVjhZM0enGWdBSX1/img.png

아이디 중복 확인

각 확인 시 문제가 있다면 send() 함수를 통해서 클라이언트에 메시지를 보내고, 그에 맞는 panel이 띄워지게 하고, 성공했을 때는 0을 보내서 성공 panel이 뜨게 끔 코드를 작성했다.

!https://blog.kakaocdn.net/dn/SR29p/btsGFjxMAkH/1RvfwVHAyJ80I1bXNmT0Uk/img.png

클라이언트쪽 switch문

문제

!https://blog.kakaocdn.net/dn/bHcgSf/btsGGa8brw4/t2jR1EhlhK6E7UA4AzQ420/img.png

다른 숫자를 send해도 클라이언트쪽에서는 1만 수신 받았다.

무슨 문제인지 숫자를 바꿔보기도 하고, 다른 여러 방법을 사용했는데도 계속 1만 수신 받는 문제가 있었다.

int res = stream.Read(buffer, 0, buffer.Length);
return res;

이렇게 수신을 받아주고 있었는데, read()의 반환값은 성공했을때 1을 반환하기에 계속 1이 들어오고 있는 문제였다.

그래서 buffer에 있는 값을 int로 바꿔주어 전송하는 것으로 이 문제를 해결했다.

    int ReadData()
    {
        byte[] buffer = new byte[1024];
        stream.Read(buffer, 0, buffer.Length);
        string data = Encoding.UTF8.GetString(buffer);
        Debug.Log(data);
        return int.Parse(data);
    }

이렇게 회원가입을 구현완료 했다.

로그인도 비슷하게 구현해주었다.

id가 데이터베이스에 존재하는지 검사해주고, 존재한다면 그 id의 pw를 찾아와 입력한 pw와 일치하는지 검사를 했다.

코드는 비슷하니 올리지는 않겠다. 그에 따라서 위와 비슷하게 클라이언트에 전송을 해주고, 클라이언트에서는 그 값을 받아 panel을 띄우거나 씬을 이동하는 행동을 진행하게 했다.

씬을 이동할 때, 함수가 작동을 안하길래 왜일까 고민을 했는데, 유니티 씬빌드에 씬이 들어가 있어야 씬 이동을 할 수 있다는 것을 까먹고 있었다.

!https://blog.kakaocdn.net/dn/brun6x/btsGCXJmWFZ/5RY2ORfPYR00vUKhMQbxW0/img.png

씬을 이동하는것과 동시에 연결을 끊어주고 다시 연결을 했다. 사실 그럴 필요는 없지만 분산서버를 나중에 구현하고자 연습해보았다.

게시판 포스트를 구현하고, db에서 게시판 데이터를 가져와서 동적으로 만드려는 작업을 진행중인데, 잘 진행되지 않는다.

비동기문제때문에 일어나는 것같다.... 어찌 해결해야할까

아..

일단 한번에 데이터를 받아오는것으로 해결했다.

동적 생성 후 만드는 것도 처리했다.

id를 통해서 받아오는 것도 프리팹을 만드는 것도 처리했다.

게시글을 만드는것까지 끝

728x90

'Study > TIL(Today I Learned)' 카테고리의 다른 글

24.04.18 AWS 강연  (1) 2024.04.18
24.04.17 서버 개발기, git readme 작성  (0) 2024.04.17
24.04.15 서버 개발기  (0) 2024.04.16
24.04.14 서버 개발기  (0) 2024.04.15
24.04.13 서버 개발기, C++  (0) 2024.04.14