@ 16. 1 ~ 17. 1/면접관련
-
디자인패턴 정리@ 16. 1 ~ 17. 1/면접관련 2016. 12. 16. 17:49
디자인 패턴을 쓰는이유?여러 선대 프로그래머분들께서 구조에 대한 고민을 응집시켜놓은 하나의 모범답안이라고 생각함. 그것을 이용한다는것은그 수많은 시행착오를 덜 겪게 되는부분이고 가장 중요한 유지보수와 생산성에 있어서 어느정도 보장을 받는다고 생각. 옵저버 패턴어떤 객체의 상태가 변할 떄 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 업데이트 될 수 있게 만든다. 다른 객체가 뭐하는지 관심이 많은 옵저버 클래스어떤 클래스든 Observer인터페이스를 구현해서 관찰자가 되면 된다. 알림 메서드는 관찰당하는 객체가 호출한다. 호출이다..(Subject라고들 하지..)1. 끈질지게 관찰자 목록을 들고 있는일을 하고..그래서 여기서 관찰자들에게 일을 시키고... 그 서브젝트를 관찰을 당하는..
-
객체지향? 절차지향? 정리 끝판@ 16. 1 ~ 17. 1/면접관련 2016. 12. 16. 15:36
객체 지향 프로그래밍이란?프로그램을 수많은 객체라는 기본 단위로 나누고 이 객체들의 상호작용으로 데이터를 처리하는 프로그래밍 절차지향과의 차이점?일단 둘다 실행방식에 있어서는 순서대로 진행되는것은 똑같다. 객체지향 프로그래밍이 실행절차에 영향을 받지 않는 프로그램 기법이 아니다. 절차지향 : 데이터와 함수가 묶여있지 않다., 객체지향에 비해서 코드양이 증가할수록 사용성과 유지보수의 어려움이 있다.객체지향 : 데이터와 함수가 묶여 있다. OPP를 사용하는 이유?새로운 기능을 추가하거나 기능을 확장하는것이(유연성과 확장성) 편리하다.그럼 어떤 특징 떄문에 위에 유연성과 확장성이 편하다는것인가? 특징캡슐화1. 기능과 데이터들을 한곳으로 모은것. 객체지향에서는 이런걸 클래스라고 부른다. 상속상속의 주 목적은 재..
-
기술 면접 책 정리(비트조작, 일반 C++관련)@ 16. 1 ~ 17. 1/면접관련 2016. 12. 15. 19:08
양수를 음수로 바꾸는 이진 표기법은..우선 양수상태에서 1. 모든 비트를 뒤집고.. 2. 1을 더한다 그러면..바로 음수가 된다. 2의 보수 표기법에서 첫번쨰 비트는 부호비트이다.0이면 양수 1이면 음수 union으로 선언하게 되면 메모리상에 위와 같이 잡힌다.특징으로는 시작주소가 같은 값으로 시작되게 된다.그렇게 때문에 union의 값으로 값을 기록하고 다시 쓰면 이전 값을 당연히 지워진다. 메모리의 시작 위치가 같기 때문이다.union형의 내부적으로 많은 변수 선언이 이루어져 있어도 결국 사용되는 메모리는 하나이다.유니온을 결국 이런식이여서 가장 큰 Type을 총 메모리 크기로 잡아 준다. 그래서 sizeof하면 가장 큰 값이 그 크기로 나옴..!! 이걸로 빅엔디안 리틀 엔디안 확인할 수 있음..bo..
-
기술 면접 책정리(디자인 패턴) + 게임프로그래밍 패턴 책(예정)@ 16. 1 ~ 17. 1/면접관련 2016. 12. 15. 14:50
디자인 패턴쓰는이유 ? 1. 여러 프로그래머들의 경험과 지혜를 모아서 공통적인 소프트웨어 디자인문제를 해결하는데 도움이 될 수 있게 만들어 놓은것.교육이 도구이자 필수적인 자원이다.2. 디자인 문제와 그 해결책을 논할 때 디자인 패턴이 간결한 용어 모음을 제공한다. 하지만 잘못쓰면 오히려 복잡해진다. 생성패턴 : 클래스 선택 및 객체 생성을 관리하기 위한 패턴싱글톤 패턴뭐..전역변수와 똑같이 봐도 되긴한데...어쩄든 더 나은점은?1. 싱글톤은 객체다. 따라서 베이스 클래스로부터 상속을 받고 인터페이스를 구현할 수 있다.단점은?멀티 스레드 환경에서는 메소드를 동기화 시켜야 하기 때문에 . 행위 패턴 : 클래스와 객체가 서로 작용하고 통신하는 방법에 관한 패턴을 행위 패턴옵저버 패턴그 객체의 상태에 관심을 ..
-
기술 면접 책정리(스레드, 객체지향)@ 16. 1 ~ 17. 1/면접관련 2016. 12. 15. 14:35
대기 중인 스레드가 여전히 활성 상태긴 하지만, 실제로는 아무 일도 하지 않는 것을 바쁜 대기라고 한다.스레드에서 두 번째 스레드가 끝날 떄까지 대기하는것 외에는 아무 일도 하지 않음에도 불구하고 프로세서에 서는여전히 이 스레드를 실행시키기 때문에 바쁜 대기라고 부르는것이다. 바쁜대기를 사용하게 되면 두 번째 스레드에서 진짜로 일을 처리하는 데 쓸 수 있을 소중한 프로세서 사이클을 뺏어가게 된다. 클래스란 속성과 행동을 가진 무언가를 추상적으로 정의한 것이다.객체는 다른 객체 인스턴스와 다른 별도의 상태를 가지고 있는 어떤 클래스의 특정 인스턴스를 뜻한다. 캡슐화 : 구현과 관련된 자세한 내용을 숨기는 것. 객체지향 : 추상화, 캡슐화, 다형성, 상속성 상속 : 어떤 클래스에서 더 특화된 버전의 클래스를..
-
기술 면접 책정리(정렬)@ 16. 1 ~ 17. 1/면접관련 2016. 12. 14. 20:33
정렬 알고리즘은 애플리케이션의 성능에 지대한 영향을 끼칠 수 있다. 선택 정렬가장 단순한 정렬 알고리즘 가운데 하나로 꼭힌다. 배열의 첫 번째 원소에서 시작하여 배열 전체를 훑으면서 가장 작은 키를 가지는 원소를 찾아서첫번쨰 원소와 맞 바꾼다. 그 다음 두번째 원소로 넘어가면서 마지막 원소에 이르기까지 같은 작업을 반복한다.최선 평균 최악 모두 정렬은 O(n^2)이다. 처음 시작할때의 정렬 상태는 비교횟수에 전혀 영향을 미치지 못한다.처음 정렬상태랑 무관하게 O(n^2)이다. 버블 정렬정렬전 상태에 따라서 이동 연산의 횟수에 차이가 있다. 자료가 먼저 완전 정렬히 되어있다면(원하는 방향으로) 자료의 이동 연산은 0회 발생..근데 효율성 자체가 비교와 이동의 더하기 이기 떄문에 항상 최선 평균 최악 O(n..
-
시스템 프로그래밍 정리@ 16. 1 ~ 17. 1/면접관련 2016. 12. 13. 23:12
D메인메모리(램) : 컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역어떤 프로그램을 실행했다? 그럼 메모리 위에 올라갔다고 표현 CPU(중앙처리 장치) 구성ALU : CPU내부에서 실제 연산을 담당하는 곳(산술연산, 논리연산)컨트롤 유닛 : ALU에게 명령어를 그대로 주면 안된다 왜냐면 이녀석은 연산밖에 할 줄 모르니까..명령어가 무슨뜻인지 몰라그래서 이걸 해석하는게 컨트롤 유닛이다. 즉, CPU가 처리해야할 명령어들을 해석하는것이다.해석이후에 ALU에게 넘겨준다.레지스터 Set : cpu내부에서도 임시적으로 데이터를 저장하기 위한 조그만한 메모리 공간컨트롤 유닛이 해석하고 임시로 저장해두면 ALU가 일을 마치고 그걸 읽는다.(근데 저장은 이진데이터 저장을 위한 것이다) 실행파일 생성과정전처리기 ..