본문 바로가기
728x90

전체 글 54

쓰레드 (Thread) Thread .. 단순하게는 "흐름"이라고 생각하면 된다. 하지만 어떠한 흐름일까? 예를 들어보자.. 메인 쓰레드 하나로만 게임을 만든다고 하면, 유저 공격이 끝나고 몬스터가 공격을 하는 '턴제 게임'이 된다. 코드가 순차적으로 실행되기 때문이다. 하지만, 요즘 게임은 어떤가? 유저가 공격하는 와중에 몬스터도 유저를 공격한다. 즉, 유저와 몬스터의 움직임이 동시에 진행되는 것이다. 우리가 들어본 멀티쓰레딩이란 여러 객체에 쓰레드를 부여해서 "동시성"을 확보하는 것이다. ** RPG 게임에서 많은 몬스터가 제각기로 움직이는데 이게 다 쓰레드라고 생각하면 된다. 엄청나게 유용해보인다. 하지만! 컨트롤이 쉽지 않다. 가령 1부터 10까지 출력하는 코드를 만들 때, 아래와 같은 코드가 있다고 하자. for(in.. 2020. 5. 22.
인터페이스와 추상클래스 - Interface and Abstract Class 인터페이스란 뭐지 ? 이전에 알아본 클래스는 "상태, 행위"로 구성되어 있다. 추상 클래스는 클래스 이름 앞에 추상을 뜻하는 abstract 가 붙거나 하나 이상의 추상메소드를 가져야한다. 인터페이스는 모든 메소드가 추상메소드이다. 그럼, 추상클래스와 인터페이스가 매우 비슷한데? 맞다. 사용하는 용도도 비슷하다. 하지만, 분명히 다른 점이 있는데 [ 추상 클래스 = 일반변수(가능) + 일반메소드(가능) + 추상메소드 ] [ 인터페이스 = 상수(static) + 추상메소드 ] 위 처럼, 변수를 가질 수 있느냐 없느냐의 차이가 있다. 또 상속을 했을 때 인터페이스에 선언된 메소드는 모두 override를 해줘야한다. 추상클래스의 메소드는 상황에 따라 다름. 게다가, 추상클래스는 extends로 상속하면 자식.. 2020. 5. 22.
클래스 (Class) 이전에 공부했던 내용들을 복습 겸 정리해놓으려고 한다. 정의나 개념 등과 같은 것들은 인터넷에서 쉽게 찾을 수 있으니, 여기선 내가 공부한 내용을 적겠다. 객체지향 프로그래밍 VS 절차지향 프로그래밍 클래스에 대해서 알아보기 이전에, 객체지향과 절차지향에 대해서 먼저 알아보자. - 절차지향 프로그래밍 : 쉽게 말하자면 첫번째 줄부터 끝까지 쭉 내려오면서 코드가 실행되는 것이다. - 객체지향 프로그래밍 : 코드가 위에서부터 내려오면서 실행되는 절차는 동일하나, 객체가 많이 사용된다. 그렇다면 객체(Object)란 무엇인가? 철학적으로 객체란 "실존하는 모든 것" 또는 "인간이 인지하여 구별할 수 있는 것"이라고 한다. 그럼 여기서 잠깐 멈추고 클래스를 알아보자. class라는 단어를 우리는 교실, 계급, .. 2020. 5. 21.
블록체인, 안드로이드앱(팀프로젝트) - Connect [작품소개] (Introduction) 이 프로젝트는 프리랜서와 작업을 요청하는 기업 또는 개인을 엮어주는 블록체인 기반 프리랜서 플랫폼이다. 지난 3월, 중국의 한 기업에서 신종 코로나 바이러스로 인해 발생되는 문제점들을 블록체인을 활용해 해결하고자 해커톤을 열었다. 우리는 코로나 바이러스로 인해 실업자 수가 증가하고 있다는 사실과 기존 중국의 프리랜서 플랫폼의 취약점 등을 분석한 뒤 이를 블록체인과 엮어 해결하고자 하였다. This project is a freelancer platform based on BlockChain, that connecting freelancer with company/personel. Last march, one Chinese company has held a hacke.. 2020. 5. 19.
InputStream, OutputStream *** 이 개념은 "이것이 자바다. 신용권의 Java 프로그래밍 정복" 을 보고 정리한 것입니다. *** 프로그램에서는 데이터를 외부에서 읽거나 외부로 보내는 일이 매우 많다. 자바에서 데이터는 스트림을 통해 입출력된다. 자연에서 물이 거꾸로 흐를 수 없는 것처럼 스트림은 단방향이다. 하나의 스트림으로 입출력을 다 할수 없다는 것이다. 데이터를 받아오는 게 입력스트림(InputStream)이고 데이터를 보내는 게 출력스트림(OutputStream)이다. 스트림 클래스는 크게 두종류이다. 하나는 바이트(Byte) 기반, 하나는 문자 기반 바이트 기반 스트림은 모든 데이터를 바이트로 입출력 가능하나 문자 기반 스트림은 오로지 문자만 입출력이 가능하다. ** 바이트 기반 스트림에 아스키코드로 된 문자가 아닌 .. 2020. 5. 17.
JavaFX *** 이 개념은 "이것이 자바다. 신용권의 Java 프로그래밍 정복" 을 보고 정리한 것입니다. *** JavaFX.. 자바로 GUI 애플리케이션을 만들 때 쓰인다. (우리가 일반적으로 컴퓨터에서 실행시키는 프로그램을 생각하면 된다.) 역사를 짧게 보자면 이전에 AWT(Abstract Window Toolkit) 이라고 하는 자바 라이브러리가 있었는데 당시 상황이 인터넷이 활성화되지 않았기에 운영체제에서 제공하는 네이티브 UI 컴포넌트를 사용했다. 근데 문제는 운영체제마다 각기 다른 컴포넌트를 제공하기에 보여지는게 달라 사용자들의 불편함을 초래했다. 이를 개선해 동일한 UI를 제공하려고 Swing이 나왔다. 근데 시간이 흘러 운영체제의 네이티브 UI 에서 애니메이션과 시각효과를 보여주면서, 사람들은 네.. 2020. 5. 17.
728x90