프로그래밍
-
진정한 프로그래머는 알고리즘머이다프로그래밍/방법론 2014. 11. 16. 18:10
진정한 프로그래머는 알고리즘머이다cubenuri.egloos.com/8790871. 어떤 언어를 사용하느냐 하는 것은 중요한 것이 아닙니다. ------------------------------------------------------------------ 문제 위주로 생각하는 버릇을 키워야 합니다. 많은 프로그래머들이 자신이 당면한 문제를 정확하게 이해하는 경우가 매우 드뭅니다. 일단 언어와 개발환경에 익숙해지면 다른 사고와 접근 방식을 요구하는 문제 해결에는 속수무책인 경우가 많습니다. 이것도 일종의 문화이기 때문이겠죠. C/C++을 배우려고도 하지 않고, 시스템 프로그래밍을 하지 못하는 대다수의 프로그래머를 실력이 없거나, 한계를 갖는 프로그래머로 매도하는 경향이 일부 있는데 이는 바람직하지 않..
-
구글이 원하는 개발자 – 문제 해결 역량프로그래밍/방법론 2014. 10. 31. 18:26
구글이 원하는 개발자 – 문제 해결 역량Posted by 김익환 in 기술, 문화 저서 “글로벌 소프트웨어를 말하다”의 24장 2년전 쯤에 구글에 취직한 한국 개발자가 자기가 경험한 면접과정을 기사화 한 적이 있다. 한국하고는 다르니까 신기한 경험이었을지 모르지만 미국 소프트웨어 회사들의 공통된 얘기였다. 만약에 개발자로서 실리콘밸리에 취직하려고 한다면 국내 회사에 취직하는 것과는 다른 준비를 해야 한다. 어쩌면 준비할 것이 없을 지도 모른다. 마지막 순간에 쪽집게 공부로는 준비할 수 없는 것이다. 자신의 모든 진실한 역량이 드러나기 때문이다. 필자가 미국 대학교에서 과목을 들을 때도 마땅히 시험 준비를 위해 특별히 공부할 필요가 없는 경우가 많았다. 마지막에 잠깐 공부하고 운이 좋으면 점수가 좋게 나온..
-
-
오버로딩(method overloading) vs 오버라이딩(overriding)프로그래밍/Java 2014. 7. 30. 00:34
메서드 오버로딩(method overloading) > 메서드 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야한다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 매서드를 여러 개 정의하는 것을 매서드 오버로딩(method overloading) 또는 간단히 오버로딩(overloading)이라 한다. > 메서드 오버로딩의 조건 1. 매서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성..
-
프로그래밍 면접 이렇게 준비한다. - 5. 디자인패턴프로그래밍/방법론 2014. 7. 25. 18:45
- 세상에는 똑같은 프로그래밍 프로젝트는 없지만 프로젝트를 하다 보면 전에 비슷한 걸 해 본 듯한 느낌이 들 때가 종종 있다. 그런 느낌이 든다는 것은 비슷한 아키텍처를 가지는 광범위한 문제에 어떤 공통된 접근법을 적용할 수 있을지도 모른다는 것을 의미한다. 이런 접근법을 디자인 패턴이라고 부른다. 1. 디자인 패턴이란 무엇인가? - 디자인 패턴이란? 객체지향 프로그래밍에서 공통적인 디자인 문제를 찾아내고 해결하는 가이드라인이다. - 디자인 패턴은 프레임워크나 클래스 라이브러리와 달리 추상적인 것으로, 실제 코드를 제공하는 건 아니고 특정 유형의 프로그래밍 문제를 해결하는 방식을 제공해 주는 역할을 한다. - 객체지향 애플리케이션 아키텍처를 위한 일련의 조리법 같은 것 ex) 반복자, 싱글턴 2. 디자인..
-
프로그래밍 면접 이렇게 준비한다. - 4. 객체지향프로그래밍/방법론 2014. 7. 25. 18:14
1. 기본원리 - 실무 개발자들이 OOP(Object-Oriented Programming) 언어를 폭넓게 도입하면서부터 연구가 더욱 활발해졌다. 2. 클래스와 객체 - 객체지향성에 대한 정의는 클래스와 객체가 그 중심에 서 있음은 분명하다. - 클래스(Class)는 속성(attribute, 성질property이나 상태state라고도 부름)과 행동(actions, 능력capability 또는 메소드method라고도 부름)을 가진 무언가를 추상적으로 정의한 것이다. - 객체(Object)는 다른 객체 인스턴스와는 다른 별도의 상태를 가지고 있는 어떤 클래스의 특정 인스턴스를 뜻한다. 직교좌표계에서 어떤 점의 x값과 y값을 나타내는 한 쌍의 정수가 들어있는 Point라는 클래스는 다음과 같이 정의할 수 있다..
-
프로그래밍 면접 이렇게 준비한다. - 3. 트리프로그래밍/방법론 2014. 7. 25. 16:26
1. 구현방법 - 트리는 0개 이상의 다른 노드에 대한 레퍼런스(또는 포인터)가 들어있는 노드(데이터 원소)로 구성된다. - 연결 리스트에서와 마찬가지로 노드는 구조체 또는 클래스로 표현되며, 트리는 포인터 또는 레퍼런스만 있다면 어떤 언어로든 구현할 수 있다 public abstract class Node { private Node[] children; public Node(Node[] children){ this.children = children; } public int getNumChildren(){ return children.length; } public Node getChild(int index){ return children[index]; } } public class IntNode ext..