Author

Pointer guide : struct
platanus |

구조체 포인터 다뤄보기 아래 코드가 있다 문자열을 담고있는 다중 배열을 구조체에 담아 반환하는 내용의 함수다. 반환되는 구조체 배열을 순회하는 코드는 다음과 같다 구조체 포인터를 순회하기 위해서는 . 대신 ->로 참조한다.

Pointer guide : multiple pointer
platanus |

포인터 가이드 : 다중 포인터 다루기 변수 포인터의 가장 적절한 예는 배열과 문자열이다. 배열의 가장 앞 원소(element)의 주소는 배열의 시작 주소와 동치다. char형의 배열은 곧 문자열이다. 맨 앞 문자의 주소는 문자열의 시작 주소와 동치다. 이러한 배열 자체를 원소로 삼아 또 다른 배열을 만들 수 있다. 어렵게 생각할 것 없이 아래 도식을 보자. 각각 요소 3개를 가진... » read more

string.h functions
platanus |

문자열과 관련된 함수 C의 string과 관련된 함수들 몇 가지를 정리 해봤다. 위는 string.h 함수의 원형이고 아래는 간단히 구현해본 코드다. strcat s2가 가리키는 문자열의 복사본을 (NULL문자까지 포함하여) s1이 가리키는 위치에 붙인다. s2 문자열의 첫번째 문자가 s1문자열의 NULL문자를 덮어 쓴다. s1을 리턴한다 strncat s2가 가리키는 문자열에서 n개의 문자들의 복사본을, 또는 NULL문자까지 복사본을 s1이 가리키는 위치에 붙인다. s2의 문자열 첫번째... » read more

Pointer guide : iterator and manipulate
platanus |

포인터 : 문자열 순회와 조작에 관하여 char src[55] : 문자열 조작을 위해서 상수가 아닌 스택 또는 힙 영역으로 할당해야한다. tmp_str = str; : 단순히 포인터(문자열)를 순회하는것이 아닌 조작을 필요로 할때는 원본 주소를 보존한다. 그리고 대신 순회할 포인터 변수에 원본 주소를 받는다. tmp_str++ : 주소를 대리로 이동하기 때문에 원본의 값 또한 변경된다. 그러나 원본의 시작 주소는... » read more

Pointer guide : method and memory
platanus |

함수 내에서 포인터 변수 사용 요령 1. 선언부 다음의 선언이 있다고 하자 char *strcpy 이 선언은 char형의 포인터, 즉 문자열로 반환하고 포인터 변수 dest와 src를 매개변수로 받는 포인터 함수다. char *dest의 정확한 표기법은 사실 char* dest다. 그래서 함수 내에서 다음 주소를 참조하기 위해 조작시 *dest++ 식으로 조작하면 안되고 dest++가 맞다. 2. 원래 주소의 보존 이후... » read more

Pointer guide : string and array
platanus |

문자열과 배열 그리고 포인터의 관계 포인터 변수 포인터를 사용하기 위해서 포인터 변수를 먼저 선언 후 주소를 할당한다. &a[0]가 a와 동치인 이유는 배열의 첫번째 요소의 시작주소와 배열의 주소가 같기 때문이다. 포인터 변수와 함수 매개변수의 원본 조작이 필요할때는 포인터 변수로 선언한다. 문자열과 포인터 흔히 아래 예시에서도 문자열이 인자로 들어간다. 이것을 문자열로 표현하면 다음과 같다 둘은 똑같이 문자열을... » read more

스프링 부트에서 RESTful
platanus |

RESTful 게시판으로 변경하기 Controller 두 요청의 mapping이 주소가 같으나 RequestMethod가 GET과 POST로 구분 되는것을 알 수 있다. View (template) HTML은 POST와 GET방식만 지원하고 PUT, DELETE는 지원하지 않는다. 스프링에서 POST와 GET방식을 이용해 나머지 두가지를 사용할 수 있는 기능을 지원하는데 HiddenHttpMethodFilter가 있다. 스프링 2.1이상에서는 자동으로 필터가 등록된다. HiddenHttpMethodFilter는 _method속성의 파라미터가 존재할 경우 그 값을 요청 방식으로 사용한다.... » read more

스프링 부트에서 Multipart
platanus |

파일 업로드와 다운로드에서 고려해야 할 부분 첨부파일의 유효성 검사 파일 전송의 진행률 표시 예외처리 사용자 편의성의 드래그 앤 드롭 기능 파일 업로드 scheme 사용자 업로드 파일 이름을 변경하는 이유 → 동일한 이름을 가진 파일이 업로드 될 경우 사용 중인 운영체제에 따라서 저장 되지 않거나 파일명이 바뀌거나 덮어쓰기가 될 수 있다. 이같은 경우 먼저 업로드 된... » read more

Singleton pattern
platanus |

Singleton 싱글톤 패턴은 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. Connection pool, thread pool, device configuration 객체 등과 같은 경우 인스턴스를 여러개 만들게 되면 불필요한 자원을 사용하게 되고, connection pool의 예를 들면 계속 커넥션을 맺고 끊는 작업이 반복되거나 요청이 많아지면 DBMS에 부담이 많이 가게 되는 문제가 발생한다. (마치 php같아진다) 싱글톤 패턴으로 객체를 생성하면 두개의 인스턴스가 존재할... » read more

Collection framework; Collection interface
platanus |

컬렉션 프레임워크 프로그램을 개발 할 때 사용하는 자료를 관리하는 방법론이 자료구조다. 자료구조는 프로그램 실행 중 메모리에 자료를 유지, 관리 하기 위해 사용한다. Java에서는 필요한 자료구조를 미리 구현하여 java.util 패키지에 제공하고 있고, 이것을 컬렉션 프레임워크 라고 한다. DAO 컬렉션 예제에 사용할 DAO 코드 memberId와 memberName로 이루어진 getter/setter를 가지는 간단한 DAO다. Collection 인터페이스 Collection 주요 메소드 boolean... » read more