NC도 1차 면접에서 떨어졌다. 너무 어려웠다.




2:1 면접이었고, 내 지원 직무는 게임개발이다.

서버/클라이언트 구분이 없어서, 나는 양 쪽 다 해본 경험을 어필하고 포트폴리오를 구성했다.


전반적으로 질문이 문제해결능력창의성을 보려고 했던 것 같다.

문제를 몇 개 예로 들면

- 3D 맵디자이너가 맵을 만들어왔는데, 떨어지면 가파라서 다시 올라올 수 없는 지형을 프로그래머 입장에서 어떻게 찾아낼 것인가? (구체적으로)

- 동접자가 100만명이 들어왔을 때, 접속중인 유저의 정보를 담은 클래스를 어떤 자료구조로 관리할 것인가? (DB 문제가 아님)

- 이외에도 문제 다수


다 현업에서 부딪히고 있는 듯한 시나리오였고, 학부생으로서는 당연히 접해보지 못한 문제이기에 그냥 내 생각대로 말했다.

그리고 해시함수나 트리를 이용한 서버 운영 시나리오도 몇 개 질문받았는데, 그 내용은 복잡해서 생략하겠다. 굉장히 어려웠다.


학부 기초 내용에 관한 질문도 있긴 있었는데, 서버와 클라이언트를 구성할 때 TCP/UDP 중 무엇을 쓸 것이고 그 이유를 물어봤다.

그리고 TCP의 특징 3가지와 같은 아느냐/모르느냐의 문제여서 전부 답했다.




결국 떨어졌는데, 여기는 그냥 실력부족으로 떨어졌다. 너무 어려웠다.

공부를 더 해야겠다는 생각이 든다. 포트폴리오도 부실했고.

1차 면접에 떨어진 후기를 써본다. 떨어졌으므로 간단하게 써야지




3:1 면접이고 분위기는 아주 편했다. 좁은 테이블에 4명이 바싹 붙어서 팀플하는 느낌.

들어가면 1분 자기소개 하고, 풀었던 코딩테스트 문제에서 뭐가 인상깊거나 아쉬웠는지 간단히 물어본다.


면접은 100% 자기소개서만 가지고 하는 것 같다. 그러니까 서류 쓸 때 면접까지 생각해서 신경썼어야 했다.

자기소개서에 쓰여진 경험, 팀플, 프로젝트에 대해서 아주 자세하게 물어본다.

어떤 역할을 맡았고, 무슨 기술을 썼으며, 어떤 어려움이 있었고 어떻게 해결했는지


그리고 꼬리물기 질문이 어렵게 들어온다.

예를 들면 내가 홈페이지를 만들었었다 -> 로그인 보안은? -> SSL을 썼다 -> SSL도 뚫리는 거 알고 있느냐? -> 모른다 첨듣는다... -> ㅇㅇ수고

이런 식으로 내가 모르는 내용이 나올 때까지 긁고, 면접관이 실망하는 것이 반복되었다.

근데 억울한게... 나도 꽤나 많이 알고있다고 생각했는데 진짜 듣도보도 못한 걸 갖고와서 물어본다ㅜ...


그래놓고 내가 시무룩하면 아, 어차피 학부생들한테 별로 기대하는 거 없어요 라고 말을 해 준다. (위로인가?)




일단 면접 떨어진 이유는 확실히 짐작이 간다. 내가 서류 쓸 때 생각 없이 썼다.

포트폴리오에 Server 관련 내용을 잔뜩 써놓고, 정작 지원 분야는 Client로 썼다. 그래서 직무가 맞질 않았다. (면접관이 직접 묻기도 했다)


말실수로 대답 잘못한 것도 몇 개 기억나는데, 지금 생각해보면 면접관이 전부 기회를 줬던 것이고 내가 잡지 못했다.

이번 하반기 첫 면접이어서 멋도 모르고 멍청하게 망쳤다. 담엔 잘하지 뭐...

도대체가 NC TEST 라는것은 구글에 쳐도 정보가 몇 개 없다. 내가 정보를 하나 남긴다.


NC는 수년째 NC TEST를 개포고등학교에서 보고 있는 듯하다. 구룡역이 더럽게 깊으므로 빠져나오는데 다소 오래 걸린다. 엘베 이용 바람.


내 지원 분야는 게임개발이다.

오전 인적성 / 점심 식사 / 오후 직무적성검사 시험을 보았다. 시험 응시인원은 통합 1,000명 정도 되어보였다.






점심엔 도시락을 주는데 이 메뉴도 수년 째 동일한 것 같다. 제조사는 Welstory. (학식으로 지겹게 먹은...)

메뉴 구성은 도시락에선 호화로운 편이다.







이제 시험 얘기를 해본다.



인적성아모레퍼시픽과 유형이 동일하다. 같은 연구소에서 만들었다고 한다.

NC TEST 문제집이 없으니 아모레 문제집을 사서 공부해야 한다. 그리고 NC는 한국사를 제외했으므로 암기 부담이 적다.


나는 다음 책을 보았다: 2018 하반기 합격이 답이다 아모레퍼시픽그룹 인적성검사 - 종합편

졸업논문때문에 바빠서 전날에 책을 처음 폈다. 그것도 각 유형별 연습문제만 풀고 모의고사는 안풀었다.

총 공부시간은 3시간 정도? 많이 푼다고 실력이 늘어나지 않을 거란 생각이 들어서 많은 시간을 들이지 않았다.

이럴거면 책값이 좀 아깝다... 그래도 유형 미리 알아간다는 것 정도는 도움되었다.


인적성은 딱히 팁을 줄 게 없다. 그냥 잠 푹 자고 맑은 정신으로 가는 게 좋을 것 같다.

그리고 볼펜/샤프 등을 쓸 수 없게 했다. 컴퓨터용 싸인펜만 사용이 허가되었다.




오후에는 직무적성검사를 보았다. 이게 참 정보도 없고 해서 뭘 공부해 갈 지 몰라 이것저것 해갔는데, 결국 별 도움 안됐다.

다음 시험 보는 사람은 이 글을 보고 감이라도 잡고 시험장에 들어가길 바란다...


문제가 총 50문제였던 것 같은데 앞에 10문제 정도가 NC 회사 관련된 문제다.

예를 들면 NC의 기업문화(홈페이지에 있는), NC가 만든 게임과 각 게임의 설명, 상 받은 게임, 해외 진출 현황 등등... 싹 다 공부해 가야 한다.

NC 다이노스 문제도 하나 나온다. 창단일이나 연고지, 최근 성적 등등 죄다 두루두루 알아가면 될 듯.


20문제는 컴퓨터공학에 대한 내용이다. 아주 깊게는 안 물어본다. 그냥 IT기업들 필기시험 대비 하듯이 다 공부해 가면 된다.


20문제는 C++로 된 코드를 주고 문제를 푸는 유형이 출제되었다. C++의 언어 자체를 아주 자세하게 물어보는 문제가 많이 나왔다.

예를 들면 클래스 구조, 클래스의 크기 측정(sizeof), 생성자와 파괴자의 호출 순서, 어느 시점에 객체가 자동으로 사라지는지, cout << 함수1() << 함수2() 같은 형태에서 호출 순서 문제 등등... 

그니까 C++의 어려운 응용이 아니라, '기본기'를 '아주 자세하게' 물어보는 것이다.

C++를 오래 전에 마지막으로 공부한 사람은 반드시 공부를 하고 가야 할 것이다. 안그러면 손도 못댈 것... (내 얘긴가??)




NC TEST 결과 발표는 5일 뒤에 해 준다고 한다.


그리고 합격자에 한해 온라인 코딩테스트가 추가로 있다고 한다. 코딩테스트는 올해부터 추가되었다고 한다.

긍정적으로 생각하면 NC TEST 합격자 배수가 늘어날 것 같고... 나쁜 점은 절차가 하나 늘었다는 거...


어렵다 어려워.






(2018.11.08 추가) 직무적성 망했다 생각했는데 붙었다. 면접 ㄱㄱ


(2018.11.15 추가) 코딩테스트 봤다. 그냥 면접 때 참고하려고 하는 것 같다. 코테 못본다고 면접 떨어지는 그런게 아닌 것 같다.

3문제 1시간반. 시간은 타이트 한 반면에 난이도는 카카오/라인보다 훨씬 쉬웠다.

그것도 채점 기능 없이 그냥 단순 코드 제출. (그래서 내가 제대로 푼 건지 못 푼건지 알 수가 없음ㅋ LG 코테도 이래서 떨어졌는데)

프로그래머스 사이트 이용해서 시험 보았고 언어도 다양하게 사용 가능해서, 난 Python으로 풀었다.

Matched Filter, 정합 필터

원본 신호를 알고 있을 때, 수신된 신호에서 어느 부분이 원본 신호 부분인지 찾아낼 때 사용


Matched Filter는 수신된 신호 중 원본 신호가 위치한 곳에서 최대가 된다.


목적은 두 신호의 유사도를 구하는 게 아니라 원본 신호 지점에서 SNR(Signal-to-Ratio)를 최대로 만드는 것인 듯


Matched Filter의 구현은 한 쪽 신호를 뒤집어서 두 개를 Convolution한다. 그러면 두 신호가 최대로 유사한 지점에서 최대값을 가지게 됨.

(링크에서 Matched Filter 파트의 그림을 참고할 것: http://blog.naver.com/PostView.nhn?blogId=moony6463&logNo=220072038153)


Cross Correlation과 같다고 볼 수 있는데 차이점은 CC가 0을 기준으로 좌우 대칭 모양이 나오는 반면에

Matched Filter는 입력 소스만큼의 길이만 나온다. 즉 CC가 두 배 더 긴 결과를 출력함.


매트랩으로 해 본 결과, Matched Filter와 Cross Correlation은 같은 결과를 내었다.

Cross Correlation은 Correlation이고, Matched Filter는 Reversed Signal을 Convolution 하는 것이라서

수식적으로 풀어보면 같은 효과라고 어디서 줏어들었음

라인 플러스 2차 시험에 응시한 후기를 남겨본다.

강남 멀티캠퍼스 건물에서 시험을 봤다. 삼성에서 운영하는 컴퓨터학원(?)이라는 듯 싶다.


코딩시험 120분 + 필기 90분 시험을 보았다.





먼저 코딩은 4문제가 나왔다. 배점은 [20,25,25,30] (의미 없지않나?) 난이도는 중간 정도.

대회 수준까지는 아니지만 연습 없이 가면 한 개도 못풀 것 같다.


문제가 대략 기억나는것이

- infix 수식 계산 문제 (stack을 이용한 문제. postfix로 변환해서 계산하면 쉽다)

- 주어진 문자열의 substring 중에서, 조건에 맞는 것 중 가장 긴 길이를 구하는 문제 (greedy 접근법을 써야 한다)

- 3번 개같은거 말로 설명안됨 -_-; 여기서 시간 다 뺏김

- 최단 경로 찾는 문제인데, 조건이 살짝 성가심 (DFS 쓰면 됐을 것 같은데 시간이 없어서 못풀었다)





필기는 서술형 5문제 + 빈칸 채우기 3문제였다.

서술형은 주어진 코드의 출력 쓰기 문제와 암호학, 컴퓨터네트워크, Garbage Collection, Thread&Mutex 관련으로 나왔다.

빈칸 채우기는 이미 대부분의 코드가 주어진 상태에서 빈 칸이 뚫려있고 그 곳에 내용을 채우는 식이었다.

문제 주제로는 Max-Heap과 Tree Inorder, 그리고 Compare-and-Swap (CAS) 관련 문제가 나왔다.





정말 다행히도 필기는 대략 공부했던 내용이라 일단 채워넣긴 했는데

코드가 일반적인 버전이 아니고 공부했던거랑 다르게 생겨서 이해를 좀 해야 했다.


근데 코딩을 2문제밖에 못푼 건 너무 아쉽다. 3문제면 무난하게 합격할 것 같은데 불안하네..





(2018.10.25 추가) 다행히 붙었다. 면접 ㄱㄱ

9.29(토)에 라인 1차 코딩테스트+필기테스트(온라인)를 봤다.

시험 시간은 코딩 2시간, 필기 1시간.




코딩테스트는 2시간 4문제로 주어졌다. (작년엔 5문제였을건데?) 문제 배점은 [10,30,30,30].

문제 난이도는 그다지 어렵지 않았다. 4문제 전부 Python 코드 30줄 이내로 풀 수 있는 수준?


상세 내용은 저작권이 있어서 대략 기억나는게...

- Stack을 이용해 방문 노드를 기록하고, 노드 재방문 시 프로그램 종료

- 주어진 쿼리 String을 파싱하고, 그에 따른 적절한 행동 하기


근데 위 2문제 풀고 서버가 다운돼서 코테가 취소됐다. 이런...




필기는 20문제가 주어졌는데, 1시간이 빠듯했다. 객관식, 단답형, O/X 세 유형으로 나왔다.


문제 유형별로 문제 스타일은

- 단답형: 주어진 코드의 결과가 무엇인가 / 주어진 코드에서 특정 함수는 몇 번 실행되는가 등등

- 객관식: 이 개념에 대해 맞는 설명을 모두 골라라 / 주어진 코드에서 빈 칸 뚫어놓고 여기에 적합한 코드를 골라라

- O/X: 주어진 설명이 맞는지 틀린지 골라라


출제 범위가 데이터베이스부터 네트워크와 컴퓨터구조까지 엄청 넓은데, 꽤나 깊이 있는 난이도로 물어봤다.

문제 하나하나가 수준이 높아서 바로 풀 수 있는 기본적인 내용은 하나도 없었던 것 같다. (결국 누가누가 구글 빨리 찾나)


결국 20문제 중 17문제밖에 못풀었는데 하필 코딩테스트가 취소돼서...

필기에서 걸러지지 않을까 매우 걱정이다. 3일 뒤에 결과 발표해준다는데, 부디 합격하길ㅎㅎ




(2018.10.05 추가) 붙었다~ 2차 시험을 공부해본다.

어쩌다보니 연구에 OFDM을 써야하게 되었다. 조사한 내용을 정리해본다.

내 사용 목적은 (1)소리로 데이터를 전송하는 것과, (2)녹음된 소리의 Time Sync를 정확하게 맞추기 위함이다.




OFDM (Orthogonal Frequency Division Multiplexing, 직교 주파수 분할 다중화)

직교하는 부반송파(sub-carrier)를 수십~수천 개씩 사용해서 병렬로 정보를 전송하는 기술

기존 기법들은 Single Carrier로써, 주파수 하나만 잡고(예: FM 라디오 등등)데이터를 전송했으나, 단점이 많이 있었음


(carrier와 channel 용어는 서로 섞여서 쓰인다)




장점

  • Multipath 환경에 강하다.
    • 주변 사물에 부딪혀서 여러 번 겹쳐 녹음될 경우, 신호 분리가 까다로운데 이를 해결할 수 있음.
    • Single Carrier 쓸 때는 데이터를 많이 전송하려면 Higher Rate를 썼어야 했고
      그러면 Multipath 환경에서 신호가 너무 쉽게 겹친다. (목욕탕에서 말을 빨리 하는 것과 같음)
    • OFDM은 여러 Carrier에서 데이터를 나눠서 Lower Rate로 전송한다.
      => 한 비트가 오래 유지되니까 알아듣기 쉽고, 앞 신호랑 조금 겹쳐도 그 부분 걍 잘라내면 된다.
  • 특정 채널의 상태가 좋지 않아도, 병렬 전송이라서 영향이 크지 않다.
    • SIngle Channel 였다면 신호가 아예 죽었을 것
  • 대역폭을 굉장히 효율적으로 사용한다
    • Sub-carrier를 겹치게 배치할 수 있으므로

(더 많은 장점은 위키를 참고: https://ko.wikipedia.org/wiki/직교_주파수_분할_다중_방식)




왜 Orthogonal인가?

병렬 전송에 대한 개념으로 FDM이 먼저 나왔으나 단점이 존재했다. 각 sub-carrier들이 겹치지 않아야 했으므로 Guard Band가 필요했다.

결과적으로 대역폭(Bandwidth)를 많이 차치하여 비효율적인 배치가 된다.


근데 어찌어찌 '직교성' 이라는것을 잘 이용하면 sub-carrier들을 겹치게 배치해도 잘 동작하게 된다. 아래처럼...

FDM과 비교했을 때 훨씬 많은 sub-carrier를 이용할 수 있음을 알 수 있다. Guard Band도 없다.




OFDM 채널 배치 구조

한 Carrier의 Amplitude가 최대일 때, 다른 Carrier들의 Amplitude는 0이 되도록 스펙트럼이 절묘하게 겹쳐져 있다. (직교성)

Theoretical BPSK OFDM spectrum



Guard Interval

위에서 Guard Band라는 용어가 쓰였는데, 채널 사이를 분리해 주는 역할이었다. (Frequency domain)
이번 용어는 Guard Interval로 전혀 다른 개념이며, 전송하는 데이터 사이를 분리해 준다. (Time domain)

예를 들어, 사우나에서 한 단어를 말하고 연달하서 다음 단어를 말하면 Multipath에 의해 첫 단어와 두 번째 단어가 겹쳐서 들린다.
그래서 첫 단어를 말하고 잠깐 쉬어주면(Guard Interval) 첫 단어의 Echo가 완전히 사그라 들게 되고, 이 때 두 번째 단어를 말한다.

즉 Guard Interval은 Echo들이 완전히(혹은 충분히) 사그라 들 때까지 기다리는 시간을 의미한다.

아래 그림은 Signal이 Multipath에 의해 3번 수신된 상황을 예시로 든 것이다. 마지막 Reflection까지를 Guard Interval로 설정했다.
물론 Guard Interval은 환경에 따라 매 번 개발자가 직접 지정해 줘야 하는 부분이다. 동굴 안에서는 충분히 길게 해야 할 것이고...




주로 쓰이는 OFDM 송수신부 구조


위 구조에서 Time Sync와 Cyclic Prefix 등은 빠져있음. 실제 구현하려면 위 구조보다 조금 더 복잡함.



Cyclic Prefix

Cyclic Extension (순환 확장)은 Multipath로 인해 발생하는 ISI(Inter Symbol Interference)를 극복하기 위해 고안된 방법이다.

목적은 Sub-carrier 사이의 직교성(Orthogonality)의 파괴를 방지하기 위함이다.

방식은 Cyclic Prefix의 경우 유효 신호의 마지막 부분 신호를 일정 부분 복사해서 앞에다가 삽입한다.


아래와 같은 데이터를 전송한다고 해보자. 3개의 Symbol이 있다.


이를 전송하면 Multipath로 인해서 Delay를 가진 신호들이 여러 번 들어오게 된다. 아래는 Original과 2개의 Multipath를 예로 들었다.

잘 보면 S2의 앞부분이 S1의 Echo와 겹치기 때문에 Inter Symbol Interference가 발생하여 S2를 추출해 낼 수 없게 된다.

따라서 결과를 보면 S2의 앞부분이 손실되고 뒷 부분만 얻어내게 된다.


그래서 Cyclic Prefix를 두게 된다. 어려운 개념은 아니고 Symbol의 뒷부분 일부를 앞에다가 복사하는 것이다.


그리고 신호를 전송해 보면... Multipath로 겹치는 부분이 발생하더라도 결국은 S2 안에서 일어나는 일이기 때문에

Symbol간의 Inter Symbol Interference는 발생하지 않는다는 것을 알 수 있다.




자주 쓰이는 용어 및 개념

  • FFT (Fast Fourier Transform)
    • 시간 도메인 신호를 주파수 도메인으로 바꿔주는 것
  • IFFT (Inverse Fast Fourier Transform)
    • FFT를 역으로 하는것
  • ISI(Inter Symbol Interference), ICI(Inter Channel Interference)
    • Multipath로 인해 신호가 겹쳐 들리는 현상
  • Modulation
    • 신호를 잘 전달하기 위해 적절히 데이터를 변조하는 것 (전자쪽 용어, 신호처리 분야)
    • QPSK, 16-QAM 등등 주로 사용됨
  • Cyclic Prefix
    • Guard Interval(최대 지연시간)동안의 신호를 복사해서 앞에 갖다붙이는 것
    • Guard Interval을 쓰는 이유? Multipath로 신호가 겹쳐봤자 최대 이 시간까지만 겹칠 것이라고 가정하는 것
    • 쉽게 말하면 뒷쪽 신호를 짤라서 앞에 갖다붙이는 것
    • Inter Symbol Interference를 극복하기 위함 - 신호가 어느정도 겹쳐도 걍 CP를 잘라버림 (어차피 뒤에 또 나올거니까)





[출처]

https://ko.wikipedia.org/wiki/직교_주파수_분할_다중_방식 (OFDM 기본 설명 및 장단점)

http://www.whydsp.org/209 (OFDM과 CP에 대한 이해가 쉬운 설명)

https://www.csie.ntu.edu.tw/~hsinmu/courses/_media/wn_11fall/ofdm_new.pdf (영문)(설명이 그림과 함께 아주 잘 되어있음)

https://dsp.stackexchange.com/questions/20132/ofdm-transmitter-bandwidth (영문)(그림 출처)

https://caesarhks.blog.me/70133244891 (OFDM에 대한 간단한 설명)

http://www.ni.com/white-paper/3370/ko (영문)(OFDM에 대한 간단한 설명)

https://www.radio-electronics.com/info/rf-technology-design/ofdm/ofdm-basics-tutorial.php (영문)(OFDM 설명)


http://www.ktword.co.kr/abbr_view.php?m_temp1=3164 (Cyclic Prefix 용어 설명)

http://www.telecomhall.com/what-is-cp-cyclic-prefix-in-lte.aspx (영문)(Cyclic Prefix 기본 개념 설명)


[좋은 코드 예시들]

http://blog.naver.com/PostView.nhn?blogId=ykryu7&logNo=221256145776 (MATLAB. 예시 코드와 설명)(실수, 허수 구조)

http://www.rfwireless-world.com/source-code/MATLAB/OFDM-matlab-code.html (영문)(MATLAB. 단순하며 직관적인 4-channel 코드 예시)

http://www.skydsp.com/publications/4thyrthesis/code.html (MATLAB. WAV 소리 파일로 생성하는 코드. 논문에 사용된 코드라 다소 복잡함)

http://dspillustrations.com/pages/posts/misc/python-ofdm-example.html (Python. 단계별로 아주 자세히 설명해 주는 코드 예시)

http://wisechoding.tistory.com/41 (MATLAB, 단계별 OFDM 시뮬레이션)

공식 설치 메뉴얼: https://www.tensorflow.org/install/install_windows


TensorFlow 설치 전에 먼저 깔아야 하는 것들(Requirements)

- CUDA Toolkit 8.0

- cuDNN v6.1


주의할 점은 위 requirement들을 최신 버전으로 깔면 TensorFlow가 지원을 안함 ㅡㅡ;;

현재 CUDA 9.1과 cuDNN 7이 최신이라 홈페이지 메인에 떡하니 있는데, 좋다고 넙죽 받아서 설치하면 당연 안되고

꽁꽁 숨어있는 Legacy 다운로드 메뉴로 들어가서 굳이 구버전을 깔아야 함


CUDA Toolkit은 크기가 좀 커서 그렇지(1.5GB) 그냥 깔면 되고

cuDNN은 받아서 압축 풀면 dll이 튀어나오는데, 적절히 원하는 폴더에 넣고 환경 변수에 해당 경로를 박아야 함

예를 들어 C:\Program Files\cudnn 폴더 만들고 그 안에 cudnn64_5.dll를 넣었으면 그 경로를 %PATH%에 박고 재부팅ㄱ





TensorFlow가 잘 깔렸는지 확인하는 파이썬 스크립트:

https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c#file-tensorflow_self_check-py

[Sampling]

이 세상의 소리(Sound)라는 것은 아날로그이기에 Linear 하다.

그런데 컴퓨터는 디지털이므로 이 Linear한 소리를 Discrete 한 데이터로 변환해야 한다.


아날로그의 오묘하고 복잡한 특성을 전부 그대로 담기에는 용량의 문제가 있으므로

일부분만 채취(샘플링)하여 최대한 원본과 유사한 디지털 데이터를 만들게 된다.

이러한 과정 또는 행위를 샘플링이라 한다.


용어가 몇 개 있다:

(1) 샘플링 레이트(Sampling Rate) : 1초에 몇 개의 샘플을 추출할 것인지

(2) Bit Depth : 한 개의 샘플이 얼마만큼의 크기를 가지는지


당연하게도 샘플링 레이트가 높을 수록 아날로그와 유사한 디지털 값(고음질)을 얻을 수 있다.

아래 그림은 샘플링 레이트에 따른 디지털 데이터의 모양을 나타낸다. 

잘게 쪼갤 수록 아날로그의 것과 같이 부드러운 곡선이 되는 것(=원본에 가까움)을 확인할 수 있다.


(출처: http://www.morphfx.co.uk/music/edu-sampling.htm)


우리가 일반적으로 구입할 수 있는 음반 CD의 스펙은 44,100hz 16bit 이다.

1초에 44100개의 샘플을 추출하고, 각 샘플의 크기는 16bit (= 2byte short) 라는 것이다.




[나이퀴스트 샘플링 이론(Nyquist–Shannon sampling theorem)]

왜 대부분의 MP3 파일, 혹은 하드웨어들이 44,100hz 스펙을 가지고 있는지에 대해 이 것으로 설명이 가능하다.


이론의 결론만을 요약하면 다음과 같다:

A sufficient sample-rate is therefore 2B samples/second, or anything larger. 

충분한 샘플링 레이트는 대역폭의 두 배, 혹은 그 이상이다.


이론에 대한 간략한 설명


사람이 소리로 들을 수 있는 가청 주파수의 범위는 20~20000 Hz 이다.

즉 데이터의 대역폭이 20 KHz라는 것인데, 이를 왜곡(Aliasing 등) 없이 샘플링 하려면

대역폭의 2배인 40 KHz 샘플링 레이트로 샘플링 해야한다.


여기서 오차 10% 및 영상 업계 표준과의 동기화 문제 등으로 인해

현재는 44,100Hz와 48,000Hz가 범용적으로 가장 많이 사용되게 되었다.


아래는 어디서 줏어들은 것:

44,100hz : 25FPS PAL, 30FPS NTSC

48,000hz : 29.97FPS NTSC




[Sources]

https://en.wikipedia.org/wiki/Sampling_(signal_processing)

https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem

https://en.wikipedia.org/wiki/Aliasing

최근 서버가 자꾸 shutdown 되는 상황이 발생하여 로그를 살펴보았습니다.

사용중인 운영체제는 CentOS 7 64비트입니다.


cat /var/log/messages | grep 'System is powering down.'


불규칙적으로 서버가 꺼지는 현상이 발생했는데, 신기하게도 비정상 종료가 아니라 정상 종료(Shutdown)였습니다.

파워나 보드 등의 부품 문제로 인한 갑작스런 전원 종료는 아닌 것입니다.


누군가 리눅스를 일부러 끄고 있다는 생각이 들어 해킹을 의심했으나, 로그에서 다음과 같은 부분을 발견했습니다.


Jan 10 22:23:31 localhost systemd-logind: Power key pressed.

Jan 10 22:23:31 localhost systemd-logind: Powering Off...


놀랍게도 전원 버튼이 눌려 시스템이 꺼지고 있었습니다. 그런데 주변에 물어봐도 아무도 누른 사람이 없습니다.

이 상태로 한 2주 지나니까 이젠 시스템을 켜면 3초 안에 자동으로 꺼집니다. 그리고 다시 알아서 켜지고, 반복됩니다.


전원 버튼 고장으로 결론을 내릴 수밖에 없는 상황입니다.


그런데 이미 제 TS140은 구입 후 1년이 경과하여 무상 RMA 불가하고, 해외 수입 제품이므로 국내 유상 A/S도 불가능합니다.

TS140 Front Bezel을 구입하여 교체하면 되지만 일단 당장 서버를 살리고 봐야 하니 나중으로 미룹니다.



메인보드의 우측하단에 전면부 패널과의 연결 케이블이 있습니다.

이 케이블을 Plug-Out 하였더니 시스템이 꺼졌다 켜졌다 하는 일은 사라졌습니다.

아무래도 전원 버튼 고장이 확실해 보입니다.



그런데 전원 버튼 연결선을 뽑아버렸으니 컴퓨터를 켤 방법이 없어졌습니다.

전원 시그널 핀 2개를 드라이버로 쇼트 내면 켜지긴 합니다만, 이걸 매 번 옆커버 따서 할 수는 없는 일입니다.



그래서 꼼수를 써 봅니다. 부팅 시 F1을 눌러 CMOS를 들어가면 파워 설정이 있습니다.

이 중에서 '전원 케이블이 연결되면 자동으로 시스템이 켜지도록' 하는 옵션이 존재합니다.

이 옵션을 ON으로 하여, 전원선을 뽑았다 꽂으면 시스템이 켜지도록 하였습니다.



전원을 끄는 것은 문제가 없습니다. 리눅스에서 shutdown 명령어로 종료하도록 합니다.



일단 이렇게 조치하여, Front Bezel이 도착할 때까지는 운영이 가능하겠습니다.

'기록물 > 사용기' 카테고리의 다른 글

TS140 전원 버튼 고장 시 대처법  (12) 2017.01.13
SADES SA-713 구입 및 사용기  (0) 2014.02.19
맥북 하판 케이스 교체 후기  (15) 2013.10.14
시대를 거스르는 AquaPlayer  (23) 2011.05.20
  1. 난짬뽕 2017.02.14 01:45 신고

    아쿠님 ts140 저도 사용중인데 일반 컴으로 사용중입니다
    혹시 해결하셔는지요 저도 아쿠님과 동일증상이어서 기존 스위치 파워전고 하드전구 전부 갈아습니다
    당연히 케이블도 갈아지요
    저도 이글을 읽고 스위치 문제인줄아아습니다 허나 2틀후 똑같은 증상이 시작되더군요
    분명 스위치쪽에서 강제 리부팅시도 합니다 꺼다켜다 허나 스위치에서 하는게 아니라
    메인보드쪽에서 하는것 같습니다
    저는 지금 메인보드 쇼트쪽에 무게을 실고 있습니다
    혹시나 아쿠님이 해결하셔나 해서 문의 드림니다
    혹시 해결하셔으면 답글부탁합니다

    • Acu 2017.03.16 19:26 신고

      제 경우는 전면부 패널 문제로 추정하고 있습니다. 케이블을 뽑으면 전혀 시그널이 들어오지 않습니다.
      윈도우 사용중이시면 전원 버튼 눌렀을 때 아무런 동작을 하지 않도록 설정하시고 사용하시는 것이 좋아보입니다.

  2. BOL 2017.02.24 16:51 신고

    전 메인보드도 교체했는데
    동일증상입니다.
    해결되셨나요?

    • Acu 2017.03.16 19:27 신고

      전면부 패널과의 연결 케이블을 뽑아도 해당 문제가 발생하신다면 제 케이스와는 다른 문제라고 생각됩니다.
      로그를 살펴보셔서 왜 시스템이 꺼지는지 확인해 보셔야 할 것 같습니다.
      아무런 로그 없이 비정상 종료된다면 파워쪽도 살펴보시기 바랍니다.

  3. X3ny7h 2017.03.12 12:58 신고

    저도 아쿠님과 동일한 증상이네요.
    몇달전에 구입한 gtx 1050 ti 때문에 전원이 딸려서 그런가싶어 그래픽카드 뽑고 내장으로 돌려도 마찬가지고
    램이나 그래픽카드 등등 모든 부품들 뽑았다가 다시 조립하니 한동안 잘 되다가 전원버튼 한번 누르니까 다시 랜덤으로 꺼졌다 켜지기를 반복하네요.
    혹시나 싶어 전면부 패널과의 연결 케이블을 뽑으니까 자동으로 시스템이 켜지는 증상은 사라지더군요.
    Front Bezel은 레노버 공홈에서 구입하시는건가요?
    이베이 검색해보니 중고매물이 종종 있긴하던데 가격도 그렇고 중고라 지저분할거 같아 영 찜찜하네요.
    일단 지금은 아쿠님 글보고 bios 들어가서 power on 으로 해놓고 쓰고 있긴한데 난짬뽕님 댓글보니 몇일있다 다시 증상이 시작될거 같아 난감하네요.

    • Acu 2017.03.16 19:31 신고

      안녕하세요. 제 사례와 같은 전원 버튼 문제로 보입니다.
      다만 전 서버 용도로 사용 중이어서 딱히 급한 사항이 아니다 보니 전면 패널은 아직 구매하지 않았습니다.
      한국 레노보에 정식으로 발매된 부분도 아니라서 부품 수급이 쉽지는 않아 보입니다.
      하지만 전면 패널 USB는 정상 동작하니 그냥 이대로 사용하시는 것도 괜찮을 것 같습니다.

  4. hawau 2017.03.23 08:45 신고

    아... 이글을 이제서 봤네요.
    1년여간 잘 써오던 TS140이 갑자기 전원이 꺼지기 시작하더니,
    재부팅하면 2~3초후 자동종료를 반복하더라구요.

    며칠간 별별시도를 다해봐도 답이 안나와서,
    메인보드 고장으로 판단하고 matx 보드랑 non etc 램 주문해 놓은 상태입니다. ㅜㅜ

    부품 도착전에 다시한번 조립해 봐야겠습니다.
    결과는 다시 댓글 남길게요.
    좋은 정보 정말 감사합니다.

    • hawau 2017.03.23 09:49 신고

      역시 전원버튼 고장이 맞은것 같습니다.
      부팅직후 전원케이블 커넥터 뽑아 버리니
      이상없네요.
      원인을 알고나니 앓던이 뽑은것 처럼 속 시원합니다.
      그나저나 전원버튼 부품을 어찌 구해야 할까요? ㅜㅜ
      다시 한번 감사드립니다.

  5. 우세바리 2017.03.23 17:38 신고

    앞뚜껑 뜯어서 전원 버튼부 누르지 안고 툭~ 건드리니 저절로 켜지네요.
    그래서 전원 버튼에 연결된선 간섭때문인가해서 간섭안받게 벌려놓고 건드리니 일단 전원은 안켜지네요.
    오늘 이래놓고 종일 컴켜놓고 상황지켜봐야겠습니다.

    해결방법 찾은듯 합니다.
    http://www.ppomppu.co.kr/zboard/view.php?id=computer&no=463888&slave=off

    이 게시글 못봤으면 저도 해결법 찾기 어려웠을 것 같네요. 감사합니다.

    • Acu 2017.03.23 21:35 신고

      도움이 되셨다니 다행입니다. 올리신 글을 보아하니 플라스틱 부품 내부의 냉납일 가능성도 있어 보입니다.
      경험담과 해결하신 방법을 제시해 주신 점 감사합니다. 같은 문제를 겪고 계신 분들에게 큰 도움이 될 것 같습니다.

  6. hawau 2017.03.23 20:45 신고

    오늘 죙일 고생끝에 해결 했습니다.
    모 게시판에 제가 올린글 링크 올립니다.
    참고하세요 ^^

    http://www.ppomppu.co.kr/zboard/view.php?id=computer&no=463903

    • Acu 2017.03.23 21:36 신고

      해결되셨다니 다행입니다. 부품값이 만만치 않아서 구매하기는 부담스러운 부분이 있어 보입니다.
      다만 저는 서버 용도로 사용 중이라 100% 정상 작동을 보장해야 해서 청소로는 안심할 수가 없을 것 같습니다.
      사용하시다가 동일 문제가 다시 발생하시면 또 방문해주셔서 후기 남겨주시면 감사하겠습니다.

+ Recent posts