프로그래밍/방법론
-
프로그래밍 면접 이렇게 준비한다. - 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..
-
스크럼(Scrum)프로그래밍/방법론 2014. 6. 19. 14:36
2012. 02. Technical Talk & Seminar - 스크럼(Scrum)스크럼(Scrum)은 애자일 방법론(Agile Methodology)을 철학적 기반으로 하는 소프트웨어 개발방법론 중 하나로, 경험을 바탕으로 위임과 자기조직화에 큰 비중을 두고 창의성과 업무환경을 개선해 가는 개발방법론이다. 애자일 방법론은 2001년 Agile Menifesto를 통해 프로세스와 도구보다 개인과 상호작용이 우선, 포괄적인 문서보다 동작하는 소프트웨어가 우선, 계약 협상보다 고객과의 협력이 우선, 계획을 따르는 것보다 변화에 대응하는 것이 우선이라는 내용으로 발표되었다. 그 바탕의 원칙들을 살펴보면… 1. 작동하는 소프트웨어를 수 주에서 수 개월의 주기로 자주, 가능한 더 짧은 기간에 인도한다. 2. 개..
-
프로그래밍 면접 이렇게 준비한다. - 2. 빅 오 분석법 원리프로그래밍/방법론 2014. 6. 13. 14:54
5. 풀이 분석 문제에 대한 답을 내놓고 나면 구현의 효율성에 대한 질문이 나오는 경우가 많다. 지원자가 구현한 풀이 방법과 다른 풀이 방법을 제시하고 그 둘의 장단점을 비교한다거나 어떤 상황에서 어떤 구현 방법이 더 유리할지를 물어보는 경우를 많이 접하게 될 것이다. 그리고 메모리 또는 공간 사용에 관한 질문도 자주 나오는 편인데, 특히 재귀 호출을 사용할 경우 이런 질문이 많이 나온다. 빅 오 분석법(big-O analysis) 을 제대로 이해하고 있다면 면접관에게 좋은 인상을 남기는 데 크게 도움이 된다. 예) 음이 아닌 수가 저장된 배열에서 최대값을 구하는 간단한 함수를 생각해 보자. 첫 번째 방법은 배열의 모든 원소를 하나씩 환인하면서 가장 큰 수를 계속 기록한 다음, 확인이 끝나고 나면 그 값..
-
프로그래밍 면접 이렇게 준비한다 - 1. 소통방법프로그래밍/방법론 2014. 6. 12. 19:10
1. 어떤 언어를 사용할 것인가? C#, 자바, C++과 같은 주류 언어를 제대로 쓸 수 있는 정도면 별 문제가 없지만, C언어를 잘 익혀두면 상황에따라서 유용하게 써먹을 수도 있다. C++프로그래밍을 마지막으로 건드려본 지 몇 년 정도 지났다면 적당한 C++ 레퍼런스 가이드를 하나 펼쳐서 중요한 내용들을 곱씹어보도록 하자. 2. 소통이 핵심이다. 면접 시에 최고의 코드를 짤 수 있어야한다. 정확하고 깔끔한 코드를 만들기 위해 최선을 다해야 한다. 그러기 위해선 많은 연습이 필요하다. 문제를 풀어나가는 동안 보여주는 사고력과 문제 해결 능력 또한 매우 중요하다. 이미 전에 풀어봐서 아는 문제가 나오더라도 무턱대고 바로 답을 말해버리는 일은 없어야 한다. 각 단계를 차근차근히 밟아나가면서 각 단계를 해결하..