일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- bean
- Pessimistic Lock
- Transaction isolation level
- 스프링
- 개발
- 안드로이드
- JPA 낙관적락
- JPA 비관적락
- 낙관적락 비관적락 차이
- Inno DB
- 암호화
- spring security
- JPA Lock
- JPA
- spring security 인증
- annotation
- component
- 스프링 로그
- 서버개발캠프
- 디자인 패턴
- flask
- Redis
- JPA 동시성
- 캠프
- Android
- Optimistic Lock
- spring
- 스마일게이트
- 서버
- 스프링 log
- Today
- Total
목록스마일게이트서버캠프4기 (6)
모르는게 많은 개발자
"내가 우물안의 개구리라는 것을 깨닫게 해준 캠프" "믿고 맡길 팀원이 있다는게 얼마나 좋은것인지 깨달을 수 있는 캠프" 캠프 오티를 시작할 때가 아직도 엊그제 같다. 같이 프로젝트를 진행할 팀원들을 우리끼리 정해라라는 말을 듣고 나는 뭔가 내가 안해본 프로젝트를 해보고 싶었다. 그러다가 지금의 내 팀원들이 게임 서버 개발자를 구하고 있다는 말을 들었다. 다른 프로젝트에 흥미가 생기지 않았던 나는 순간적으로 하고 싶다는 느낌이 팍! 들었고, 게임 서버자체를 해본적이 없는 내가 바로 가서 "내가 하겠다. 날 받아달라 했다." 이때부터였던가 나의 고생길의 시작이... 나는 지금까지 웹 서버와 안드로이드를 주로 해왔다. 그런 내가 게임 서버를 한다니 내가 생각해도 그때 왜그랬는지는 알 수 없었다. 그때는 뭔..
프로젝트가 어느 정도 틀을 가추면서 몬스터의 HP를 동기화 작업을 실시했다. 간단히 프로세스를 말하면 다음과 같다. 1. 서버에서 클라이언트로 몬스터 생성 패킷을 Send한다. 그리고 서버에서는 각 몬스터 HP를 관리할 dic을 생성한다. 2. 클라이언트에서 몬스터를 공격시 HIT패킷을 서버로 전송. 3. 서버에서 HIT패킷을 받고 공격받은 몬스터의 HP를 깎고 HP정보를 다시 클라이언트로 전달. 문제점 : TCP로 테스트를 하던 도중 의도치 않은 패킷이 전달되는 것을 확인. 처음에는 한번에 많은 패킷이 전달되어 데이터가 변형됐나라는 생각을 했지만 TCP특성상 그건 아니라고 생각. 그래서 원인을 보기 위해 여러 테스팅을 하던 중 같은 TCP로 구현되어있는 채팅서버에 loop로 채팅을 Send해봤다. 테스..
AWS 우분투를 이용해 Flask서버와 게임 서버 배포작업 과정에서 ssh를 여러 터미널에서 실행하고 작업하고 있었다. 그러던중 서버를 백그라운드로 실행을 시켰는데 터미널간 백그라운드가 공유되지 않는 것을 발견했다. 또한 터미널을 종료하면 프로세스도 같이 종료되는 것을 발견했다. 해결방법을 검색하던중 nohup 명령어를 알게됐다. nohup 명령어를 알게 됐고 문제를 해결할 수 있었다. 1. nohup 명령어 nohup (프로세스 실행 명령어) &> (로그 파일 이름)& 이렇게 실행하게 되면 ps -aux 명령어를 통해 위에 실행했던 파이썬 프로세스가 실행된 것을 알 수 있다. 2. tail 명령어 nohup으로 실행하면 tail 명령어를 통해 실시간으로 로그를 확인할 수 있다. tail -f (로그 이..
스마일게이트 서버개발 캠프 두번째 개인과제는 인증서버개발이었다. 처음 인증서버를 들었을때는 뭔지 감이 오지 않았다. 지금까지 개발을 해오면서 구현해온 로그인, 회원가입 방식은 DB에 접근해 아이디 있는 지 없는지 체크해서 로그인 이런 간단한 방식만 생각했기 때문이다. 하지만 이번 과제를 수행하면서 회원가입, 로그인에 정말 많은 기능들이 들어간다는 것을 개발하면서 많이 느껴볼 수 있었다. 1. 기능 목록 2. 아키텍처 개인 과제 요구사항을 다 충족하기위한 아키텍처이다. 이번 프로젝트에서 Redis, Flask, Ajax, SMTP를 처음으로 사용해볼 수 있었다. 각각의 역할은 다음과 같다. 1. Flask - Python으로 제작 가능한 웹 서버이다. 첫번째 개인과제를 PHP로 구현하고, 캠프장님이 다음 ..
캠프에서 유일하게 게임 개발 프로젝트를 하게 되었다. 서버 담당을 맡은 나는 두번째 개인과제에서 개발한 로그인 시스템을 이용해 유저끼리 간단히 파이썬 소켓 서버를 통해 클라이언트끼리 채팅하는 프로그램을 구현하였다. 1. 로그인 화면 간단하게 이메일과 비밀번호를 입력할 수 있는 씬을 제작. 2. HTTP 통신 구현 개인과제에서 Flask를 이용한 로그인 시스템을 구현했기 때문에 Flask서버를 그대로 이용해 게임 로그인에 적용했다. 일단 C#에서 HTTPManager클래스를 만들어 서버와의 통신을 구현했다. using System.Net; using System.IO; using System.Text; public class HTTPManager { string url; string res = string..
스마일게이트 서버개발을 시작하고 개인과제를 시작하게 되었다. 첫번째 과제는 shortening URL 구현이었다. shortening URL을 듣고 처음에는 어떤 용도인가 궁금했지만 글자수 제한이 있는 SNS에서 URL을 줄이게 위해 사용된다는 것을 처음 알게 됐다. 언어에 제약이 없어 평소에 썼던 PHP 서버를 활용해 과제를 진행했다. 1. Shortening url원리 shortening url의 원리는 데이터베이스에 내가 입력한 url을 저장하고, AUTO_INCREMENT를 설정한 id를 Base62로 encoding 값을 변환url로 출력해주는 것이다. 그리고 변환된 url을 입력하면 서버에서 url을 가져와 Base62로 다시 decoding한 값과 id를 비교해 실제 url을 가져오는 것이다..