비트를 쪼개는 개발자

allen321@naver.com

전체 글 82

통신이란 ?

컴퓨터 통신이란 ?  하나의 컴퓨터(클라이언트) 에서 다른 목표지점까지 통신회선을 통하여 정보 및 데이터를 보내는 행위. 단 클라이언트와 해당 목표 지점 간의 원활한 정보 송수신을 위해 규격화된 통신 방식이 필요함.  컴퓨터 통신의 역사  많은 사람들이 사용했던 초창기의 컴퓨터 통신은 대부분 1990년대경 모뎀*을 이용해서 전화선을 연결하는 방식의인터넷 접근 방식이었다.  (모뎀 = 아날로그 신호를 디지털로 변환하는 장치)   이 당시에는 TCP/IP* 통신이 표준화 되었지만 아직 대중들에게는 널리 보급되지 않아서 다양한 방식으로 디지털 연결을 시도하던 시기였다.  (TCP/IP =  인터넷에서 컴퓨터들이 정보를 주고받는 통신규약 모음, 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 T..

통신 2024.05.01

Unity [디자인 패턴] - 오브젝트 풀링 패턴

오브젝트 풀링이란?  Unity에서 빈번하게 사용하는 객체 및 오브젝트에 대하여 매번 새로 생성하고 삭제하는 것이 아닌재사용이 가능하도록 특정 자료구조에 모아놓는 방식이다. 유니티에서 오브젝트를 생성하거나 삭제할때에는 Instantiate()와 Destroy() 함수를 사용하는데,이 두 함수는 오브젝트의 리소스를 새로 할당하는 과정에서 많은 시간과 메모리를 잡아먹는 함수이다. 또한 오브젝트를 파괴하고 난 뒤에도 파괴 이후에 발생하는 가비지 컬렉팅으로 인하여 프레임 드랍이 발생하기도 하고 반복적인 파괴 이후에는 메모리 단편화가 일어나기도 한다.   오브젝트 풀링의 장점은? 오브젝트를 미리 한번에 여러개를 생성시켜 놓기 때문에 게임 플레이 도중에 오브젝트 생성으로 인한 프레임 드랍이나 리소스를 잡아먹는 일을..

Unity 2024.04.30

Unity에서 DB를 활용해 로그인, 회원가입 시스템 구현해보기 (2)

지난 글에 이어서데이터베이스와 로그인 시스템을 연동하기 위한 방법을 알아보자 ! using System.Linq;using MySql.Data.MySqlClient;using Mysqlx.Crud;using System.Collections.Generic;//string _server = "121.168.117.23"; //DB 서버 주소, 로컬일 경우 localhost//int _port = 3306; //DB 서버 포트//string _database = "db_spacescore"; //DB 이름//string _id = "allen"; //계정 아이디//string _pw = "qezvRC*Kf*bTDA4sKCd_TGe-"; //계정 비밀번호//string _connectionAddress = "..

Unity 2024.04.26

Unity에서 DB를 활용해 로그인, 회원가입 시스템 구현해보기 (1)

유니티로 작업중인 개인 프로젝트 중 로그인 및 회원가입 시스템을 DB를 활용해서 구현 해보고 싶어졌다.      게임 시작후 로그인와 계정 생성을 담당해줄 UI를 만들어주고  버튼을 누르는 이벤트에 따라서 로그인과 계정을 생성할 시 필요한 정보를내 MariaDB에 접근해서 데이터를 주고 받으려고 한다.    초기에 작성했던 구조도를 조금 수정해서 처음에 계정생성과 로그인을 담당해줄 부분을 만들어주고 Exit로 게임을 종료해주는 여러 과정에서 로그아웃을 넣어주기로 한다.       제일 먼저 구현했던 방식은  DB와 통신할때 DB에 접근해 해당 데이터를 쿼리문을 사용해 직접적으로 추가해 주거나 삭제하는 식으로 구현했지만 이는 게임을 플레이 하는 유저가 데이터를 조작하기 너무 쉬운 방식으로 구현되어보안에 취..

Unity 2024.04.22

DataBase 란 ? (SQL 및 ERD에 관하여)

DataBase 란 전자적으로 Data(정보) 를 저장하고 공유 및 사용을 위해 체계적으로 데이터를 저장하는 방식이다.  컴퓨터에서 데이터를 저장할때는 메모리(Ram) 혹은 디스크(SSD,HDD)에 보관하는데 컴퓨터를 종료할 시 (전원 공급이 차단되면) 메모리에 저장 되었던 데이터들은 모두 사라진다. 따라서 데이터베이스에서는 일반적으로 컴퓨터가 종료되어도 데이터를 저장 할 수 있는 디스크에 데이터를 저장한다.  DataBase와 이를 제어하는 데이터베이스 관리 시스템 (DBMS)로 구성하는데  DataBase 자체는 데이터를 저장하는 창고 역할만 해주기 때문에 보통 DataBase를 말할때에는 이를 컨트롤 해주는데이터베이스 관리 시스템 (DBMS) 까지 통합시켜 이야기 하는 경우가 많다.  DBMS의 유..

DataBase 2024.02.22

C# [프로그래머스] Lv.1 없는 숫자 더하기

간단하게 0부터 9까지의 숫자 를 가지고 있는 정수 배열을 받아 온 뒤 이 배열 안에서 0부터 9 까지 중의 숫자 중 없는 숫자를 찾고 이 숫자들을 더한 answer을 받아오면 되는 문제.   처음 구상은 0 부터 9까지의 숫자를 가진 List를 만들고  numbers[]에 들어있는 원소들과 비교해서 없는 숫자들을 모은 List를 하나 더 만들어서 이 List의 총합을 더하는 방식으로 구상했다.    그러나 구현중에 조금 더 쉽게 풀 수 있는 생각이 들었는데,  어차피 0부터 9까지의 총 합은 45로 고정이고  제한사항을 읽어보니 numbers의 원소들은 같은 값이 나오지 않는다고 하니 그냥 numbers를 전부 더해서 45에서 빼주는 방법이 더 쉬워보였다.  public class Solution{ ..

코딩테스트 2024.02.19

C# [프로그래머스] Lv.1 나머지가 1이 되는 수 찾기

쉬운 문제라 금방 해결했다. 1부터 n만큼 for문을 돌려주고 그 for문 안에서 특정 자연수로 나눈 나머지 값이 1이 되는 최소값을 구하면 되는 문제. 리스트를 만들어 조건을 충족하는 숫자들을 모아놓고 가장 작은 수를 출력하면 끝 ! public class Solution{ public int solution(int n) { int answer = 0; List answer_list = new List(); for (int i = 1; i

코딩테스트 2024.02.07

C# [프로그래머스] Lv.1 삼총사

삼총사  제한사항 number = 검사해야 할 정수 배열 인덱스 result = 특정 합을 충족하는 삼총사의 갯수   어제 풀었던 숫자 짝꿍에서 시간 복잡도에서 계속 발목 잡혔던것 맘에 걸려  문제를 보고 처음으로 떠올랐던 3중 for문을 돌리는 방식이 아닌  특정 배열의 합을 구할때 용이한 Two Pointer 알고리즘을 활용하면  특정한 합을 가지는 부분 수열을 찾기 용이할 것 같아 활용해서 풀어보았다.    public class Solution { public int solution(int[] number) { int answer = 0; Array.Sort(number); for(int i = 0; i   이후 테스트 케이스를 돌려보고 정..

코딩테스트 2024.02.06