세상에 이상을 더하다.

지금, Rooti와 함께라면.

Rooti는 상상을 만드는 공방입니다.

Leap to Rooti 32

합의 법칙과 곱의 법칙

합의 법칙 두 사건 A, B가 동시에 일어나지 않을 때 두 사건 A, B가 일어날 경우의 수가 각각 a, b일 때 사건 A 또는 B가 일어날 경우의 수는 a+b이다. 곱의 법칙 두 사건 A, B가 일어날 경우의 수가 각각 a, b일 때 사건 A와 B가 동시에 일어날 경우의 수는 a×b이다. 예제) 서로 다른 주사위 2개를 던져서 나올 수 있는 경우의 수를 구하시오.(단, 주사위를 적어도 한 개는 던져야 하나, 모두 던질 필요는 없다) 풀이) 서로 다른 두 주사위를 각각 A, B주사위라고 하자 1) 주사위 1개를 던질 경우의 수 -A주사위: 6가지 -B주사위: 6가지 =>12가지 *A주사위와 B주사위를 던지는 경우는 동시에 일어나지 않는 사건이므로 A주사위를 던질 때 나올 수 있는 경우의 수인 6가지와 B..

싱글톤 패턴 : Singleton pattern

싱글톤이 왜 필요한가? 평소에 우리가 클래스를 만드는 이유가 무엇인지 곰곰이 생각해 보자. 클래스는 설계도와 똑같이 생긴 여러 복제품을 찍는것에 그 의의가 있었고 우린 그렇게 사용해 왔다. 그런데 만약 우리가 단 하나의 객체가 필요하거나 여러 객체 중 외부 클래스에서 접근해야 하는 객체가 존재한다면 어떡해야 할까? 그럴 때 사용하는 것이 바로 싱글톤 패턴이다. 싱글톤 패턴 : Singleton pattern 기본적인 싱글톤 패턴은 아래의 코드와 같다. 이 코드와 아래의 코드에서 생성자를 private, public으로 선언한것이 다르다, 주의 바란다! 일단 우리는 딱 하나의 인스턴스만 만든다고 해보자. 버 X킹의 회사를 예로 들겠다. 우리가 버X킹을 위한 프로그램을 만들고 있는데, 버X킹 본사는 전 세계..

Lecture/Java 2023.01.27

Route, 3

In-Game 인트로 애니메이션을 만들고 안드로이드 버전에 맞춰 영상을 추가하였습니다. 7초 정도의 시간 이후 Skip 할 수 있는 선택안이 나오도록 하였습니다. 많은 애니메이션 버그들을 수정하였습니다. 여러 장애물들이 추가되었습니다(텍스처는 입히기 전입니다) . UI UI와 인게임 화면의 터치를 구분, UI를 터치했을때 게임이 진행되는 버그를 수정하였습니다. Later Json 암호화 및 복호화를 아직 구현하지 못하였습니다. 다음 업데이트에서 구현할 예정! 더 많은 장애물들을 추가할 예정입니다. 더욱 풍부한 텍스처를 추가할 예정입니다. 게임오버시 이벤트를 변경할 예정입니다.

멈춰있는 것들: Static Variable, Static Method

메모리 구조와 함께 Static 변수와 메서드를 공부해 보자 메모리 구조 위 사진에서 알 수 있듯이 자바의 메모리 구조는 크게 데이터 영역, 힙 영역, 스택 영역 으로 나눌 수 있다. 앞 글에서 배운 개념들을 메모리의 관점에서 설명해 보자. 여러 참조 변수들과 지역 변수들, 매개변수들 등과 같은 변수들이 모두 실행될 때 스택 영역에 생성된다. 그리고 각 클래스들로부터 만들어진 인스턴스들은 힙 영역에 자리 잡히고 인스턴스 변수들도 마찬가지이다. 쉽게 생각하면 참조변수들은 힙 영역에 존재하는 인스턴스가 가지고 있는 "주소"를 가지고 있다고 생각하면 된다. 마지막으로 데이터 영역인데 프로그램이 실행될때 딱 한 번만 선언되는 static변수들이 여기에 존재한다. 이 글에서 알아볼것이 바로 static 변수이다...

Lecture/Java 2023.01.25

이거 예약어 : this reserved word

예약어(Reserved word) 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어들이다. 예를 들어 C에서 return은 변수명이나 함수명으로 사용할 수 없다. 그런 단어들은 키워드이다. (위키피디아) 말 그대로,, 이미 특정한 의미로 사용되기 예약됨, 변수 이름이나 메서드로 사용하면 안 됨! 자신의 메모리를 가리키는 this 저번 글에서 잠시 언급한 예시를 다시 한번 보자. ( 수정사항 --> String[ ] coupons = new String[2]; ) 생성자도 결국 메서드 중 하나이니 생성자로 설명을 하겠다. 메서드에서 입력하는 값( 이 예시에서는 int memberID, String memberShip )의 이름과 각 인스턴스가 가지고 있는 ..

Lecture/Java 2023.01.25

은밀하게.. 정보 은닉과 접근 제어자

왜 필요한가? 학생의 신분으로 뭘 알겠나? 솔직히 필자도 정보 은닉의 중요성을 하나도 알지 못한다. 그러나 너무나 당연한 건 게임, 애플리케이션등과 같은 프로그램들 그리고 여러 사이트들은 보안이 중요하다는 것이다. 메모리에 올라가 있는 여러 변수들이 외부에서 너무나도 쉽게 읽히고 바뀐다면 많은 문제가 생기는 게 당연하다. 물론 어떻게 다른 변수에 접근하는지 그 방법은 나도 아직 잘 모르지만, 안전하게 보안을 철저히 해 두는것이 좋지 않은가... 접근 제어자 자바에는 크게 세 개의 접근제어자로 나눌 수 있고 아무런 제어자를 안 적을 수도 있다. 접근 제어자 설명 public 외부 클래스 어디에서나 접근 가능 protected 같은 패키지 내부와 상속 관계의 클래스에서만 접근 가능, 그 외 클래스에서는 접근..

Lecture/Java 2023.01.25

연속성의 정의와 관련 정리들의 증명 총정리

함수 f가 a에서 연속임은 다음과 같이 정의됩니다. 이 정의는, f가 a에서 연속이기 위해서 다음 세 조건이 요구됨을 알려줍니다. f(a)가 정의된다.(a가 f의 정의역에 속한다.) x가 a로 접근할 때의 f(x)의 극한값이 존재한다. 1에서의 f(a)가 2에서의 극한값과 같다. 한편, 한쪽 방향의 극한값만이 함숫값과 같다면, 그 방향으로만 연속입니다. 다시 말해, 위와 같이 우극한이 f(a)와 같다면, 'f는 a에서 오른쪽으로부터 연속이다'라고 말합니다. 좌극한이 같다면, 왼쪽으로부터 연속이겠죠. 물론 좌극한과 우극한이 같으면 완전히 연속입니다. 그렇다면 어떤 구간에서 f가 연속임은 어떻게 정의될까요? 간단하게, 구간 내의 모든 점에서 연속이면 f가 그 구간에서 연속이라고 합니다. 열린구간이면 문제될 ..

Lecture/Calculus 2023.01.25

평균값 정리 증명 (Mean Value Theorem)

평균값 정리는 순간변화율과 평균변화율을 매듭지으며, 다시 말해 도함수와 원시함수를 매듭짓습니다. 이는 수학적으로 의미가 큽니다. 실제로 다음번에 다룰 미적분학의 기본정리의 증명에서도 평균값 정리가 쓰입니다. 평균값 정리의 내용은 다음과 같습니다. 한글로 표현하자면 다음을 의미합니다. 함수 f가 닫힌구간 [a, b]에서 연속이며, 열린구간 (a, b)에서 미분가능하면 이를 만족하는 c가 (a, b)에 존재한다. 물론 양변에 b-a를 곱해 다르게 표현하면, f'(c)(b-a)=f(b)-f(a)를 만족하는 c가 (a, b)에 존재하는 것과도 같죠. 그럼 롤의 정리를 사용해 평균값 정리를 증명해보겠습니다. 점 A를 (a, f(a)), 점 B를 (b, f(b))라고 두겠습니다. 그러면 직선 AB의 방정식은 아래와..

Lecture/Calculus 2023.01.24

롤의 정리 증명 (Rolle's Theorem)

롤의 정리는 증명이 간단하면서도 평균값 정리나 로피탈의 정리 등 다양한 정리들의 증명에 잘 사용되니 알아두시면 유용하리라 기대됩니다. 롤의 정리의 증명에는 페르마의 정리가 사용되는데, 이것은 이전 글에 증명해 두었습니다. 롤의 정리는 다음과 같습니다. 즉, 함수 f가 다음 세 조건을 만족할 때, f가 닫힌구간 [a, b]에서 연속이고 f가 열린구간 (a, b)에서 미분가능하며 f(a) = f(b). f'(c)=0을 만족하는 c가 열린구간 (a, b)에 존재한다는 의미입니다. 세 가지 경우로 나누어서 증명하겠습니다. 1. f(x) = k, 상수일 때 (f가 상수함수일 때) 열린구간 (a,b) 전체에서 f'(x)=0이므로, c에는 구간 내의 아무 값이나 가져와도 롤의 정리에 부합합니다. 2. 열린구간 (a,..

Lecture/Calculus 2023.01.23

페르마의 정리 증명 (Fermat's Theorem) + 최대, 극대, 임계값의 개념

페르마의 정리는 다음 글에 설명할 롤의 정리의 증명에 사용되며, 롤의 정리는 다시 미적분학에서 매우 중요한 정리 중 하나인 평균값 정리(MVT)의 증명으로까지 이어집니다. 따라서 이번 글에서 페르마의 정리의 증명을 다루겠습니다. 페르마의 정리는 위와 같습니다. f가 c에서 극댓값 혹은 극솟값을 가지며 f'(c)가 존재할 때, 그때의 f'(c) 값이 0이라는 뜻입니다. 이를 증명하기 이전에 극대/극솟값의 정의를 먼저 살피고, 페르마의 정리의 증명에 이용되는 최대·최소 정리까지 살펴봅시다. 먼저 최댓값과 최솟값(absolute maximum/minimum)은 말 그대로 함수의 정의역 전체에서 가장 크고 작은 값을 의미합니다. Calculus에서는 위와 같이 설명하고 있습니다. D는 정의역입니다. 정의역에 속..

Lecture/Calculus 2023.01.23