함수 하나의 작은 목적을 수행하기 위해 여러 문장을 모아 놓은 것 // 함수 헤더 returnValueType functionName(list of parameters) { // 함수 몸체 : 할 일 정의 } // 함수 호출 : 함수 사용 functionName(actual parameter); * 함수 헤더 : 함수의 반환값 유형(returnValueType), 함수 이름(functionName), 매개변수로 구성 ** 매개변수 : 함수 헤더에 작성된 변수. 함수가 호출될 때 값이 전달되어 저장되는 변수 ** 실매개변수(인수) : 호출하는 쪽의 매개변수 함수의 특징 5 int max(int num1, int num2) 6 { 7 int result; 8 9 if(num1 > num2) 10 result..
리팩토링이란 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. 참고로 리팩토링은 전체적인 아키텍처에서부터 개선해나가는 디자인패턴과 떼어놓을 수 없는 관계입니다. 개념은 동일한데 바라보는 관점이 다른 것입니다. 이제 본격적으로 리팩토링을 시작합니다. 1. 순수가상함수와 추상클래스 문제 발생 먼저 접하기 쉬운 Animal 클래스를 구현해볼까요! Dog개, Cat고양이 클래스도 함께 구현합니다. 개발자들이 ..
이론으로만 배우던 정렬 알고리즘을 직접 프로그래밍하며 익혀보는 시간입니다. 이름하야 열정넘치는 정열아닌 정렬 프로젝트!! Bubble버블, Selection선택, Insertion삽입, Merge머지, Heap힙, Quick퀵소트를 다뤄보도록 하겠습니다. [C++]정렬 알고리즘 프로그래밍-①코딩 준비하기 이전 시간에 코딩할 준비를 마쳤습니다. 이번 시간에는 본격적인 프로그래밍에 앞서 정렬 알고리즘들을 하나의 프로젝트로 만들기 위해 부가적으로 필요한 메소드들을 만들보겠습니다. 정렬할 준비! 정렬 알고리즘들을 구현하여 하나의 프로젝트로 만들기 위해 본격적인 프로그래밍에 앞서 부가적으로 필요한 메소드들을 만들보겠습니다. 어떤 메소드들이 있는지 sort_class.h 헤더파일을 통해 살펴보겠습니다. * 솔루션 ..
이론으로만 배우던 정렬 알고리즘을 직접 프로그래밍하며 익혀보는 시간입니다. 이름하야 열정넘치는 정열아닌 정렬 프로젝트!! Bubble버블, Selection선택, Insertion삽입, Merge머지, Heap힙, Quick퀵소트를 다뤄보도록 하겠습니다. 본격적인 프로그래밍에 앞서 코딩할 준비부터 해보도록 하겠습니다. 코딩할 준비! 프로그래밍은 Visual Studio 2008을 이용하여 C++로 진행합니다. 1. 비주얼스튜디오를 열어서 메뉴의 파일 > 새로만들기 > 프로젝트를 선택 2. 빈 프로젝트로 생성 3. 아래와 같이 작성할 헤더파일과 Cpp파일을 추가합니다. 4. 코딩후 디버깅 혹은 실행을 하려면 다음과 같이 저장을 하고, 빌드 메뉴에서 솔루션 빌드로 진행합니다. 다음 포스팅에서는 본격적인 프로..
APM 환경에서 한글 연동시 문제가 생겼다. 영어는 문제 없이 통신이 잘 되는데 한글만 넣으면 한글이 깨져서 괴상하게 출력된다. 인터넷에 나와있는 대로 해도 안되어서 고생 끝에 드디어 해결했다. 문제 해결을 위해 가장 중요한 것은 PHP ↔ DB, DB ↔ Android, Android ↔ PHP 간의 모든 통신에서 모두 같은 캐릭터형을 써야 한다는 것이다. 나는 euc-kr 대신 utf-8을 사용하였다. 다른 사이트를 참고하여도 안된다면 마지막 방법으로 다음과 같이 설정해보자. [PHP] db-connection 부분 → mysql_query("set names utf8", $con); 라인 추가 function connect() { // import database connection variable..
입력을 받을 때 string과 char 차이! 1. input은 다음과 같다.HELLO C++ 2. 배열과 스트링 생성1) char 배열 생성 간단하게 동적 배열 생성하지 않아도 되도록, 가장 큰 배열 수만큼 SIZE를 define 해두자 초기화는 memset이용하는데 여기서는 하지 않음 char arr[SIZE]; 2) 스트링 생성string s; 3. 표준 입력 읽어오기1) char 배열 읽어오기cin for문 돌려서 일일이 받아와도 되지만 배열 전체로 받아와도 됨공백, 개행 무시 cin >> arr; ** 입력이 H E L L O C + + 이런 식으로 띄어쓰기 되어있다면 for문으로 일일이 받아와야 한다** 2) 스트링 읽어오기cin#include 필요공백, 개행 무시 cin >> s; 4. 문자..
문제발생 이클립스 사용 중에 Unhandled event loop exception 에러가 발생하였다 Error Message : Unhandled event loop exception 해결방법 해결하는 두가지 방법이 있다. 1. eclipse.ini 파일을 수정 Eclipse 응용 프로그램이 있는 폴더내 eclipse.ini 파일을 열어 '-vmargs' 바로 밑에 '-XX:MaxPermSize=256m' 추가 -> C:\Program Files (x86)\eclipse\eclipse.ini /* 전략 */ -vmargs -XX:MaxPermSize=256m// 추가 -Dosgi.requiredJavaVersion=1.8 -XX:+UseG1GC -XX:+UseStringDeduplication -> 나..
문제발생 이클립스 사용중 Failed to create the part's controls 에러가 발생하였다. Error Message : Failed to create the part's controls 원인 갑자기 잘되던 이클립스가 다운되었다. 메모리 문제였나 xml에서 코드에서였나 문제가 발생했었는데, 한참 해결을 못하다가 오랜만에 다시 켜보니 Failed to create the part's controls 에러가 나 있었다. 내가 용량이 모자라 폴더를 막 삭제했었는데 그게 문제가 된 것 같다. 지우면서 아마, plugins 폴더가 변경되어서 그런 듯 해결방법 .plugins 폴더가 변경되어서 발생하였으므로 .plugins 폴더를 다시 만들어주면되는데 1. 다른 프로젝트에서 plugins 폴더를 ..
1. JDBC 드라이버 로딩하기 - 드라이버 이름으로 JDBC 드라이버 로딩 - Class.forName("org.gjt.mm.mysql.Driver"); import java.sql.*; public class Test { public static void main(String() args) { try { // 드라이버 이름. DB 관련 구문 중 제일 먼저 기술 Class.forName("org.gjt.mm.mysql.Driver"); } catch (classNotFoundException e) { System.err.println("클래스가 없음 : " + e.getMessage()); } } 2. DB에 연결하기 - java.sql.Connection클래스와 java.sql.DriverManage..