전체 글

공부해보고 경험해보고 기록하는 블로그 입니다.
TIL

동기와 비동기 방식 / 스레드 풀

공부하게 된 계기 2023-04-16 자바 게임 프로젝트를 만들고 있던 와중 던전 기능에서 몬스터가 나오게 되면 캐릭터와 몬스터와 싸우는 구조가 된다. 다만, 공격 속도라는 데이터를 가지고 싸우기 때문에 공격속도 만큼 속도에 맞추어서 공격할수 있게 만들고 싶었기 때문에 공부를 하게 되었다. ( Notion 에 정리 했던 글을 좀 더 정리해서 여기다가 써본다. ) 동기란? 작업을 하다가 다른 작업을 하게 된다면 다른작업을 끝내고 다시 작업을 시작한다. 비동기란? 작업을 하다가 다른 작업을 하게 된다면 다른 작업도 하면서 작업을 한다. 즉, 아래에 그림으로 정의할수 있을것 같다. 스레드 풀 이란? 스레드 풀(Thread Pool)은 작업 처리를 위해 여러 개의 스레드를 미리 생성해 두고, 작업 큐(Queue..

Git | GitHub

Git

Git Git이란, 버전 관리 시스템(Version Control System, VCS)의 하나이다. Github에 저장소를 생성하고 Git 명령어를 통해 저장소에 push, pull 할수 있다. 또한 팀원들과 함께 병렬 개발을 할수 있어서 최고의 장점이다. Git 명령어 Git 을 먼저 설치 해야 한다. 자세한 링크는 아래에 첨부하였다. Git 을 설치후 먼저 자신의 정보를 입력 해야 한다. git config --global user.username "Domae-back-end" //깃허브에 등록된 이름 git config --global user.email "123@naver.com" //깃허브에 등록된 이메일 이후에 등록이 되었다면 자신의 정보 확인을 할려면 아래의 명령어를 사용하면 된다. git..

TIL

Java_Game 프로젝트 진행중 발생한 문제 공부 ( 멀티스레드 )

문제 Java_Game 프로젝트를 진행하던 와중 던전 기능중 몬스터와 유저 사이에서 싸우는 것에 멀티스레드로 코드를 작성할려고 하였다. 하지만 코드를 작성하고 오류가 많아지고 어떻게 해결을 해야 할까 고민하였다. 결국에는 해결을 하였지만 아직 나에게는 멀티스레드에 대해 자세히 모르는것 같아서 공부를 시작하였다. 공부 방식 1번째, 멀티스레드에 대해 찾아본 결과 동기 와 비동기을 찾게 되었다. ( 알고는 있었다. ) 그래서 나는 내가 아는 정보토대로 적어 보자면, - 동기 : 동기식 방식은 순서대로 진행하다가 다른 객체를 실행할때 다른 객체가 끝나야 본 객체가 다시 실행이 되는 방식이다. ( 직렬 ) - 비동기 : 비동기식 방식은 순서대로 진행하다가 다른 객체를 실행하고 본 객체도 같이 실행하는 방식이다...

DB

기본 SQL 문 정리(3) - select, update, delete

테이블 데이터 조회 - select select라는 sql 문은 기본적으로 테이블에 있는 데이터를 조회한다는 뜻이다. select를 통해서 원하는 데이터를 가져올 수 있고, 정렬, 숫자만큼 조회, 조건에 따른 데이터에 따라 데이터를 가져올 수 있다. 밑에는 간단한 sql 문으로 작성한 거다. select * from //모든 데이터 조회 select id from //id 의 데이터 조회 select id from where //id 중에 조건물을 걸어 나오는 데이터 조회 select * from order by id desc //id 값을 높은수 부터 정렬 select * from order by id asc //id 값을 낮은수 부터 정렬 select * from limit //숫자만큼만 조회 whe..

DB

기본 SQL 문 정리(2) - create, Insert

DB 테이블 생성 테이블을 생성하는 sql 문이다. create table 테이블명( 컬럼명 데이트타입 조건, 컬럼명 데이트타입 조건, 컬럼명 데이트타입 조건 ); create table topic( id int(11) NOT NULL AUTO_INCREMENT, title VARCHAR(100) not null, description text null, created datetime not null, author VARCHAR(15) null, profile VARCHAR(200) NULL, PRIMARY KEY(id) ); ㄴ Primary Key : 기본키 ㄴ not null : null 불가 ㄴ null : null 가능 ㄴ AUTO_INCREMENT : 자동 index 번호 입력. ㄴ int :..

DB

기본 SQL 문 정리(1)

현재 군대 복무중으로 구름IDE 를 통해 설명을 해야한다... * 구름IDE 는 웹 IDE 로 웹에서 개발 할수 있는 환경이다. OS : Ubuntu DB : MariaDB DB 접속하는 sql 문 mysql -u root // root 계정으로 유저로 접속. ㄴ -u : 유저 ㄴ -p : 비밀번호 입력 * 저는 root 계정으로 진행하였지만 보통은 계정을 만들어서 그 계정에서 실행합니다. root 계정 ( 비권장 ) 만약 이런 오류가 발생된다면 mysql 이 실행되고 있지 않는 상태이다. 즉 서버가 stop 된 상태... 해결방법은 간단하다. 우분투 기준으로 service mysql start 명령어를 실행하면 된다. 다시 mysql -u root -p sql 문 실행후 DB 접속을 하면 이러한 화면이..

DB

Mysql

Mysql 이란? Mysql이 무엇일까? 구글에 검색하면 이러한 답변이 나온다. "웹사이트 및 애플리케이션용 데이터를 저장하고 검색하는 데 사용하기 쉽고 빠르고 안정적인 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다." 나는 처음 공부할때 모르는 단어가 있었다.. 바로 관계형 데이터베이스? 가 무엇인지 몰랐다. 하지만 점차 DB 공부를 하게 된 결과 관계형 데이터베이스 (RDBMS) 가 무엇인지 알게 되었다. 처음 공부하는 분들은 몰라도 되지만 먼저 설명을 하자면 관계형 데이터베이스는 테이블에 데이터가 저장되어 테이블마다 다른 데이터 구조를 파악하고 이해할수 있다. 즉, 데이터 항목들이다. 자세한것은 앞으로 게시글에 작성하면서 알려드릴겠습니다. SQL 문? SQL 문은 또 무엇일까? DB ..

TIL

Java_Game Project / Multi Thread ( 멀티스레드 )

2023-04-16 던전 기능 개발도중... Java의 프로젝트인 RPG Game 을 만드는도중 던전에 입장을 하여 유저와 몬스터가 싸우는 것을 멀티스레드로 구현을 할려고 하였다. 던전에 입장하면 몬스터의 speed (공격속도) 유저의 speed (공격속도) 에 맞추어서 스레드를 2개를 돌려 서로 공격하고 누가 이기는지 나오는 기능을 만들려고하였다. 문제발생... 멀티스레드를 잘 해보지 않아서 그런지 스레드를 2개로 돌려 몬스터와 유저 한명이 이기게 된다면 2개의 스레드를 종료를 시켜야 한다. 내가 알고 있는 방법은 stop() 매서드를 이용하는 방법인데 stop() 은 강제종료로 비권장하는 방식이라 interrupt() 방식을 할려고 하였다.. 하지만 스레드를 돌린뒤 유저나 몬스터가 이기는 순간 2개의..

Java

형변환

오늘은 형변환에 대해 공부를 해볼것이다. 형변환이란? 형변환이란 변수타입을 바꾸는 것을 형변환이라고 한다. 예를들어 String a = "10"; /String b = "1"; 이라는 값이 들어가있다. 나는 이것을 계산을 하고 싶다. 하지만 a+b 의 값을 출력해보면 101 로 나오게된다. 나중에 연산자에서 설명하겠지만 문자열 + 문자열 = 문자열 이다. 그러므로 문자열을 정수형으로 변환하여 계산을 해야지 내가 원하는 11이 나오게 된다. 형변환 방법 형 변환 방법 String num = "10"; Integer.parseInt(num); // String -> int Double.valueOf(num); // String -> double Float.valueOf(num); // String -> fl..

Java

변수

오늘은 변수에 대해 공부를 하려고 한다.. ( 이전에 Notion에 정리해 놓은 것을 블로그에 옮긴다. ) 변수는 무엇일까? 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다 즉, 변수 -> 저장공간 인것이다. int variable = 1; 자료형 변수명 = 값; 이런식으로 변수선언을 할수 있고 값을 부여 할수 있다. 자료형은 무엇일까? 쉽게 말해 자료형이란 값이 어떠한 타입 종류인지 선언하는 것이다. 대표적으로 4가지의 자료형이 있다. 1. 정수형 int, long 2. 실수형 ( 실수해서 실수형이 아니다. ) float, double 3. 문자형 char 4. 문자열 String 5. 논리형 boolean 여기서 잠깐! 정수형, 실수형, 문자형과 문자열 이 ..

Domae_
공부해보는 개발 블로그