본문 바로가기
728x90
반응형

서버10

4차 산업 사업 보고서 4차 산업 프로젝트를 하면서 사업 보고서를 쓰게 되었다. 자료조사를 하면서 제품 생산 부분 쪽으로 조사를 하였는데 앱을 만들고자 한다면 꼭 알아야 하는 것들을 조사해보았다. 1. 기술 환경 구축 (1) 서버 처음에는 빌려 쓰는 서버를 추천 드립니다. 최근에는 클라우드 기술의 도입으로 비용이 많이 저렴해졌습니다. 사업이 잘되어서 인터넷 사용자가 늘어나면 그때 비싼 전용 서버를 구매해도 늦지 않습니다. 특정 시점이 되면 빌려 쓰는 것보다 전용 서버 비용이 더 저렴해집니다 (2)운영체제 설치 요즘에는 무료 운영체제인 Linux가 Unix를 충분히 대체할 수 있게 되었습니다. 그래서 대부분 서버에 Linux 를 설치해서 사용합니다. 하지만 만일 꼭 사용해야만 하는 어떤 소프트웨어가 Linux에 설치되지 않는다면.. 2018. 1. 21.
14. 유저 세션(3) 6-2. 구현하기 유저가 로그인을 성공하면 유저 세션 역할을 하는 프로세스를 생성할 것이다. 점수를 저장하는 API는 핸들러에서 처리시 해당 세션 프로세스에게 메시지를 전달해서 결과값을 받아 오도록 한다. 6-2-1. 유저 세션 프로세스 생성 mon_users 모듈에 new_session/1, loop/1, make_session_key/2 함수를 만든다. 프로세스 생성 부분만 만들고, 나머지는 함수 껍데기만 작성하겠다. %% API -export([join/2, login/2]). join(Id, Password) -> F = fun() -> case mnesia:read(users, Id) of [] -> %% 해당 Id로 가입된 데이터가 없으면 저장한다 Users = #users{id=Id, pas.. 2018. 1. 18.
10. 데이터베이스(1) 5-1. 데이터베이스란 관계형 데이터베이스는 관계형 모델을 기초로 한 데이터베이스 데이터를 표의 형태, 즉 테이블 형태로 표현하는 것 데이터 베이스를 설계하는 정규화 과정에서 E-R(개체-관계) 모델과 이것을 그림으로 표현한 다이어그램은 필수적으로 만들어야 하는 문서이다. NoSQL은 관계형 모델을 쓰지 않고 분산 처리가 용이하여 클러스터로 동작이 가능한 오픈소스 데이터베이스이다. 5-1-1. ACID 트랜잭션 ACID 트랜잭션은 관계형 데이터베이스에서 여러 개의 SQL 연산을 하나의 단일 트랜잭션으로 처리하는 것을 의미한다. 여러 개의 테이블에 대해서 읽고 쓰고 하는 행동을 하나의 연산처럼 사용하는 것이다. Atomicity 원자성 : 여러 개의 SQL 연산이 하나의 연산처럼 동작해야 한다. Consi.. 2018. 1. 12.
9. 로그인(3) 4-2-5. ETS와 Dets ETS는 얼랭에 내장된 메모리 데이터베이스 (Erlang Term Storage) Dets는 Disk ETS라고 생각하면 된다. ETS 기능을 파일 베이스로 만든 버전이 Dets ETS는 메모리에 데이터를 저장하기 때문에 서버가 꺼지면 데이터가 소멸되지만 Dets는 파일에 저장하기 때문에 데이터이 분실 위험은 사라진다. 하지만 속도가 느리고 용량도 제한적이다. 지금은 ETS를 이용해서 유저의 아이디와 패스워드를 저장해보겠다. ETS의 모든 기능은 ets 모듈에 BIFs로 구현되어 있다. BIFs는 얼랭 VM 내부에 내장된 함수들을 의미한다. 얼랭 모듈이지만 C언어로 작성되어 있어 속도가 빠르다. ETS에 데이터를 저장하기 위해서는 먼저 테이블을 생성해야 한다. 테이블에는 얼.. 2018. 1. 11.
6.기본 모바일 서버 만들기(2) 3-2-5.cowboy 사용하기 cowboy의 흐름도를 보면 client에서 받은 HTTP요청을 처리하는 순서를 알 수 있다. acceptor에서 클라이언트의 접속을 수락->Erlang 프로세스를 생성 클라이언트의 요청 패킷 하나당 Erlang 프로세스 하나가 생성되는 것이다. 그 다음 parser에서 socket을 읽어 패킷을 처리하게 된다. 에러가 없다면 onrequest->router->handler를 거쳐서 클라이언트로 응답 패킷을 전달한다. 우리가 신경 쓸 부분은 router->handler 이부분이다. 3-2-5에서 작성할 코드 부분이 이 부분으로, 각종 기능들을 이 부분을 통해서 연동시킬 것이다. 먼저 코드 작업을 하기 위해 cowboy 소스를 받아와서 project에 연동 시켜야 한다. I.. 2018. 1. 10.
5.기본 모바일 서버 만들기(1) 3-1.서버 설계 요즘은 스마트폰의 성능이 좋아지면서 게임들이 온라인화되기 시작했다. 최근 모바일 게임들은 대부분 무로료 다운 받아서 인앱 결제를 통해 수익을 받는다. 게임을 구입해야 설치가 가능한 게임들은 매출 순위가 낮고, 인앱 결제 방식의 부분 유료화 게임들이 상위권이다. 이렇게 되면서 서버의 중요성이 매우 커졌다. 게임의 데이터가 스마트폰에 있을 경우에는 유저 마음대로 조작이 가능하기 때문에 굳이 인앱 결제로 돈을 지불하지 않아도 유저가 원하는 대로 플레이가 가능하다. 이를 막기 위해서는 서버에서 데이터를 가지고 있어야 하고 서버가 게임의 플레이를 제어하고 검증해야 한다. 모바일게임은 데이터로 할 경우 서버에 대한 반응 속도가 빠르지 않아도 문제없이 게임이 동작하도록 해야한다. 그리고 PC에 비해.. 2018. 1. 7.
4.개발 환경 구축하기(3) 저번에 이어서 기본 파일 추가를 계속 해보겠다. 저번 마지막에 만들어봤던 것과 똑같은 방법으로 다시 하나 더 만들어 보겠다. Name 은 start, kind는 OTP application resource file 선택 다음으로 start.app 파일이 생성된다. 그안에 내용 중에 {mod, {start,~ 이 부분에 start를 이전에 생성했던 start_app으로 바꿔준다. 그리고 src 디렉토리에 어플리케이션 리소스 파일을 만들었을 경우에는 파일 뒤에 .src를 붙여 주어야 한다. 따라서 start.app 파일에 마우스 오른쪽 버튼 클릭 -> Refactor -> Rename 선택 이제 실행 파일을 만들어보겠다. 프로젝트 최상위에서 New->File 선택 이름은 first.bat으로 하고 파일 생성.. 2018. 1. 7.
728x90
반응형