본문 바로가기

전체 글42

인자(Argument)와 매개변수(Parameter) 인자와 매개변수의 차이는 아주 간단한 기초지식이지만 중요한 포인트다. 둘은 비슷한 듯 보여도 사실은 전혀 다른 것을 가리키고 있기 때문에 언급하고 넘어간다.인자는 함수를 호출할 때 함수 매개변수로 넘겨지는 값을 말하고,매개변수, 즉 파라미터는 함수 선언 부에 괄호 안에 정의된 변수이다. 인자를 받아서 그 값을 담는 변수라고 보면 된다.앞선 장에서 봤던 코드를 보자. 여기서 Student라는 생성자를 보자. 생성자에 대해서는 다음 장에서 설명을 할 테니 void Student라는 일반 함수라고 생각하고 이해하도록 하자.class.h의 8번째 줄 Student(string name) 에서 string name이 바로 파라미터이다.class.cpp의 5번째 줄에서 “Jun”이 바로 인자이다. Jun이라는 문자.. 2016. 11. 11.
객체란? 객체는 실체(Instance)를 말한다.Class와 Instance를 구분할 줄 알아야 한다.우리가 클래스를 만들어 메인 함수 또는 다른 함수에서 클래스를 사용하려 할 때 인스턴스화(객체화)를 통해 실제로 메모리 상에 올라가야 그것을 객체라 지칭하고 사용할 수가 있다. 이 때 우리는 클래스의 형식을 가진 객체, 즉 실체(Instance)를 만드는 것이다. 예를 들어보자.형준은 실체이고 진환은 실체이다. 진환과 형준이 가진 학생이라는 특성은 class가 된다. 우리가 학생이라는 클래스를 만들면 모든 학생들이 공통적으로 가지는 특징들을 클래스에 정의할 수 있다. 하지만 그것은 실체(객체)가 아니다. 객체화(인스턴스화, 실체화)를 해야지만 실체(객체)가 되는 것이다. 학생이라는 클래스 형식으로 형준, 진환, .. 2016. 11. 11.
인라인 함수(Inline function) 컴파일러가 함수를 호출할 때 함수가 정의된 부분으로 찾아가서 보고 다시 원래 위치로 돌아오는데 이 시간을 줄이기 위해서 함수 정의 부분의 코드를 호출된 프로그램코드에 그대로 복사가 되어져서 왔다 갔다 하는 이동시간을 줄이는 기법- 함수 앞에 inline이라고 쓰기만 하면 됨- 빠르게는 40%정도의 속도 효율이 있을 수 있다.- .h파일 안에서 정의가 되어야만 인라인화 할 수 있다. 기억하자.- 근데 컴파일러가 인라인화를 거부하는 경우도 생김(가상함수의 경우 inline을 써도 문제없이 돌아가지만 인라인화가 되지 않음)- 컴파일러가 알아서 인라인화 하는 경우도 있다.근데 전부 인라인을 쓰게 되면 프로그램 코드가 길어지기 때문에 정의는 짧고 자주 호출 되는 경우에 인라인 함수를 쓰는 것이 가장 좋다. 코드가.. 2016. 11. 11.
Git bash를 이용한 버전관리 1. Git이란?Git이란 소스코드를 효과적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템'이다. 원래는 리눅스 소스코드를 관리할 목적으로 개발됨 Git에서는 소스코드가 변경된 이력을 쉽게 확인할 수 있고, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 돌아갈 수도 있다. 팀프로젝트 작업 시 내가 올리려는 파일이 누군가 편집한 내용과 충돌한다면, 서버에 업로드 할 때 경고 메시지가 발생된다. 출처 : https://backlogtool.com/git-guide/kr/intro/intro1_1.html 2. Git bash를 이용하면 윈도우를 리눅스처럼 사용 가능하다. 윈도우 버전 GUI툴을 이용하기 보다는 Git bash를 이용하는 방법을 추천한다.Git bash를 사용하기 위해 필요한 간단한.. 2016. 10. 27.
쿠키와 세션, 캐시 웹 서버를 처음 개발하면서 부딪혔던 부분 중 하나가 로그인 유지이다.Http는 TCP처럼 연결지향형이 아니다. 웹 브라우저가 웹 서버에 요청을 보내면 웹 서버는 요청을 한 웹 브라우저에 요청한 정보를 보내주고 끝이다. 웹 페이지에 접속해 있는 동안 웹서버와 연결이 되어 있는 상태가 아니기 때문에 게임 서버처럼 스레드풀(Thead pool)을 만들어 접속한 클라이언트를 관리할 필요가 없다. 1. 쿠키와 세션 그렇다면 웹 서버는 어떻게 각각의 클라이언트를 관리할까?예를 들어 우리가 네이버나 구글 같은 페이지에 로그인을 했다고 치자. 우리는 아이디와 패스워드를 입력하고 서버로 보낼 것이며, 서버는 브라우저에서 보낸 아이디와 패스워드를 DB와 비교하여 로그인이 되었다고 브라우저에 알릴 것이다. 이번에는 메일을 .. 2016. 10. 26.
서블릿(Servlet)이란? 1. 서블릿(Servlet) JAVA를 이용하여 웹페이지를 동적으로 생성하는 서버측 프로그램이다.흔히들 CGI(Common Gateway Interface)라고들 하는데 CGI는 사용자의 입력을 받아서 동적인 HTML문서를 만드는 것이다. 웹 페이지에서 로그인 한 사용자에 따라 서로 다른 부분이 있다. 쉽게 예를 들어 로그인을 하고나면 ~님 안녕하세요 라고 띄울 때 ~부분은 사용자에 따라 달라지게 되는 데 이 부분이 동적인 부분으로 매번 다르게 생성되는 부분이다.Servlet이란 JAVA로 구현 된 CGI라고 생각하면 된다.jsp와 혼동될 수 있는데 jsp는 html문서에 java언어를 삽입한 것이고, servlet이란 java언어로 이루어진 웹프로그래밍 문서이다. 자세한 내용은 http://anster.. 2016. 10. 26.
interface와 abstract class의 차이 클래스는 일반 클래스와 추상 클래스로 나뉘는데 추상 클래스는 본문 중에 '추상 메소드'가 하나 이상 포함되는 경우를 말한다. 인터페이스는 모든 메소드가 추상 메소드인 경우 선언하는 경우가 많다. 추상 메소드라 함은 메소드의 선언부만 있고 본문이 없는 것을 말한다.예를 들어 abstract public void test( int a ); 이와 같이 선언만 하고 구현은 자식 클래스에서 하게 되는 방법이다.{} 부분을 body부분이라고 하는데 body부분에 내용이 없더라도 {}가 존재한다면 추상 메소드가 아니다.예를 들어 abstract public void test( int a ){ } 이러한 경우는 추상 메소드가 될 수 없다. 일반 클래스의 경우 상속받은 자식 클래스가 반드시 부모 클래스의 메소드를 '오버.. 2016. 10. 26.
MVC 게시판 테스트 해당 영상은 개인 포트폴리오를 위해 녹화되었습니다.Spring framework를 이용하여 MVC구조로 게시판을 작성하고 테스트 하는 영상입니다. 2016. 10. 14.
[영상]'Global applied game jam 2016' Bulk-UP!! 본 영상은 Global applied game jam 2016 에서 48시간 동안 기획/제작한 게임입니다.주제 - Health Care부제 - Health Care를 위한 게임대상 - 10대~20대 운동이 부족한 학생 또는 직장인제작 툴 - 유니티 / C#게임 목표 - 운동을 하면서 동시에 게임을 즐길 수 있도록 유도게임 특징 - 플레이어가 운동을 함에 따라 캐릭터가 성장함으로써 뿌듯함을 느끼게 함 (ex>걷기 퀘스트를 완료하면 캐릭터의 점프력과 체력이 증가함) 실제로 캐릭터의 모습이 변해가는 것을 보며 자신도 변할 수 있음을 깨닫게 함.(동기부여) 올바른 운동 방법을 제시하기 위한 유튜브 영상 연동 성장된 캐릭터로 게임을 더욱 더 수월하게 진행할 수 있음 2016. 9. 6.