도대체가 NC TEST 라는것은 구글에 쳐도 정보가 거의 안나와서 -_-;; 내가 정보를 하나 남긴다.


일단 NC는 수년째 NC TEST를 개포고등학교에서 보고 있는 듯하다.

문제는 구룡역이 더럽게 깊다. 심지어 에스컬레이터도 망가져서 다리 박살나는 줄 알았다. 엘베 이용바람.




오전에 인적성 보고, 점심 먹고, 오후에 지원 분야별로 직무적성검사를 한다. 내 지원 분야는 게임개발이다.

시험장이 35개 있고 각 시험장마다 30명이 응시했으니, 이번 NC TEST는 약 1,000명이 시험을 치르는 것으로 보인다.

(서류 합격이 보통 10배수니까 올해 하반기 공채인원은 100명인가?? 흐음...)






점심엔 도시락을 주는데, 검색해보니 이 메뉴도 수년 째 동일한 것 같다. 제조사는 Welstory 인듯. (학식으로 지겹게 먹은 회사... -_-)

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







이제 시험 얘기를 해본다.



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

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

타 기업들은 한국사, 한자 등 암기과목들이 있는데 NC TEST는 암기 과목이 전혀 없어서 공부 부담이 적다고 생각한다.


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

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

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

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


인적성은 딱히 팁을 줄 게 없다. 그냥 잠 푹 자고 맑은 정신으로 가야 한다는 것... (제일 중요)

그리고 개인 필기도구를 쓸 수 없게 했다. 컴퓨터용 싸인펜만 사용이 허가되었다.




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

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


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

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

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


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


마지막 절반은 C++로 된 코드를 주고 문제를 푸는 유형이 출제되었다. 깨달은 점은 C++을 굉장히 꼼꼼히 공부해 가야 한다는 것이다.

출력되는 결과를 고른다던지, 알고리즘적으로 따라가는 그런 문제는 C++을 몰라도 쉽게 풀 수 있다. 그런데 문제는


C++의 언어 자체를 아주 자세하게 물어보는 문제가 많이 나왔다.

예를 들면 클래스 구조, 클래스의 크기 측정(sizeof), 생성자와 파괴자의 호출 순서, 어느 시점에 객체가 자동으로 사라지는지,

cout << 함수1() << 함수2() 같은 형태에서 호출 순서 문제 등등... 


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

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




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


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

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


어렵다 어려워.






(2018.11.08 추가) 아이고 합격했네 감사합니다... 망했다 생각했는데... 면접 준비합니다.


(2018.11.15 추가) 코딩테스트는 그냥 면접 때 참고하려고 치는 것 같다. 면접은 확정이고 코테는 옵션으로 보는 느낌?

3문제 1시간 반 주는데, 난이도는 카카오,라인 등등보다 훨씬 쉬웠고, 채점 기능 없이 그냥 단순 코드 제출이었다. 그래서 내가 제대로 푼 건지 못 푼건지 알 수가 없음ㅋㅋ

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

Matched Filter, 정합 필터

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


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


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


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

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


=> '유사도' 랑은 조금 뉘앙스가 다르다고 볼 수 있음.


원본 신호를 파괴한다고 보는 시각도 있음. 형태를 변형해서 분석하는 것이기 때문. 추가 설명하자면 위 링크에서도 나오지만

- 아날로그 시스템에서는 파형의 원래 모양을 복원하는 것이 목적인 반면에

- 디지털 시스템에서는 파형의 모양에는 관심없고, 걍 0과 1만 알면 된다.

디지털은 파형 모양과 상관 없이 그냥 0,1을 판별하기만 하면 된다. 따라서 Matched Filter는 디지털 시스템의 그런 목적에 부합한다고 할 수 있다.


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

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

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

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

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


1층의 안내 종이를 보아하니, 강의실이 한 30개 가까이 되었고 각 방마다 25명 정원인 것으로 보아

이번 2차 시험은 700명 정도로 추려낸 것 같다. 근데 서울권만 700명이고 지방은 별도로 시험봤을 수도 있다.




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


먼저 코딩은 4문제가 나왔다. 배점은 [20,25,25,30]. 난이도는 중상인 듯.

알고리즘 대회 수준까지는 아니고, 그렇다고 아무 연습 없이 가면 절대 못푸는 수준.


역시나 문제 저작권 때문에 대강만 말해보면...

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

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

- 3번 개같은거 말로 설명안됨 -_-;; (컴퓨터그래픽스에서 배운 translation, rotation, scaling 느낌인데, 하여간 좀 다름)

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


하필 infix->postfix 방법이 가물가물해서 도출하느라 시간을 너무 많이 썼다.

결국 2문제밖에 못품ㅜㅜ 하나 거의 다 풀었는데...




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

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


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

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


정말 다행히도 셋 다 공부했던 내용이라 일단 채워넣긴 했는데, 코드가 일반적인 버전이 아니고 공부했던거랑 다르게 생겨서

코드의 구조와 원리를 이해하느라 좀 머리를 써야했다.




여튼 시험이 끝났으니 이제는 합격을 바라는수밖에ㅜㅜ

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




2018.10.25 추가) 오예 2차도 붙었다. 면접 준비하자...

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

시험 시간은 코딩 10:00~12:00(120분), 필기 12:10~13:10(60분).



이번 공채는 사람을 많이 뽑는다는 소문이 있던데, 그래서인지 2시간에 4문제가 주어졌습니다. (작년엔 5문제였던거로)

문제 배점은 [10,30,30,30] 이었고 아마 60점 넘으면 통과일 것 같습니다.


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

상세 내용은 저작권이 있어서 대략 느낌만 보자면...

- Stack을 이용해 방문 노드를 기록하고, 노드 재방문 시 해당 지점 반환하기

- 주어진 쿼리 String을 파싱해서 그에 따른 적절한 동작 시행


(근데... 시험 도중에 테스트서버가 다운돼서 코딩테스트가 취소됐다는 것... 필기테스트로만 진행한다는...것...)



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

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

- 객관식: 이 개념에 대해 맞는 설명을 모두 고르시오, 주어진 코드에 빵꾸 뚫어놓고 여기에 적합한 코드를 고르시오.

- O/X: 주어진 설명이 맞는지 틀린지 고르시오.


출제 범위가 데이터베이스부터 네트워크, 컴퓨터구조까지 엄청 넓은데, 그 마저도 살짝 Deep 한 개념들을 물어봅니다.

문제 하나하나가 수준이 꽤나 높습니다. 기본적인 내용은 안물어봅니다. (결국 누가누가 구글 빨리 찾나)


결국 20문제 중 17문제밖에 못풀었는데 (그것도 확신이 없음) 하필 코딩테스트가 취소돼서...

필기에서 걸러지지 않을까 매우 걱정이네요. 1차 발표는 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 시뮬레이션)

[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% 정상 작동을 보장해야 해서 청소로는 안심할 수가 없을 것 같습니다.
      사용하시다가 동일 문제가 다시 발생하시면 또 방문해주셔서 후기 남겨주시면 감사하겠습니다.

성균관대학교 대학원 전자전기컴퓨터공학과에서 2017년 3월부터 석사 시작합니다.


이진규 교수님의 지도 하에 랩실에서 근무 예정입니다.

주 연구 분야는 모바일 시스템입니다. 모바일 센싱 및 자동차와의 융합 기능을 연구합니다.

배터리 분야도 부 연구로 진행합니다.


Real-Time Computing Laboratory (http://rtcl.skku.edu/)

연구 분야:

- Real-Time Embedded Systems

다양한 코어 시스템에서 실시간 스케줄링을 연구합니다.

멀티 쓰레드 환경에서 실시간 스케줄링을 연구합니다.

하드 리얼타임 환경에서 실행 시간을 보장하는 방법을 연구합니다.

- Cyber-Physical Systems

효율적인 배터리 충전/방전 방법을 연구합니다.

- Mobile Systems

모바일 응용과 서비스를 연구합니다.

모바일 환경에서의 에너지 소비 최적화를 연구합니다.

IoT 관련 분야를 연구합니다.

맥(Mac OS X)에 Java 8 (JRE, JDK, jdk1.8) 설치하는 방법입니다.


기존에 Legacy Java 6(2015-001)을 설치했더라도 상관 없습니다.

두 Java는 서로 영향 없이 맥에 공존하게 됩니다.




1. 다운로드 및 설치

우선 말씀드릴 점은, 여러가지 사유로 인해 JRE보다 JDK를 설치하는게 일이 간단합니다.


어차피 Java 8 설치하시는 분들은 Eclipse 혹은 관련 개발을 위함이라 생각되기 때문에

JRE는 건너뛰고 JDK를 설치하도록 합니다. (JDK는 JRE를 포함하고 있습니다.)


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html




2. 터미널 명령어 java를 jre1.8로 연결

현재 상태에서 터미널에 java -version 을 치면 두 가지 케이스로 나눠지는데

  첫째는, 아무런 Java를 설치하지 않아 설치 창이 튀어나오는 경우

  둘째는, java 1.6.0이 설치되어 있다고 나오는 경우


어쨌거나 두 케이스 다 Java 8과는 연결되지 않기 때문에 새로이 연결하도록 합시다.


본 작업은 /usr/bin 디렉토리 내의 파일을 변경하므로, rootless 기능을 꺼야 가능합니다.

끄는 방법은 구글링을 하시기 바랍니다.


ls /Library/Java/JavaVirtualMachines


위 명령어로 현재 설치된 jdk1.8의 폴더명을 알아냅니다.


sudo rm /usr/bin/java

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/java /usr/bin/java




3. 끝

연결이 끝났습니다.

java -version 을 쳐서 Java 1.8.0 버전을 확인하고 기분 좋아하도록 합니다.

StartSSL에서 인증서 발급 받는 방법은 해당 글에서 확인하시기 바랍니다.


- 본 글은 RedHat 계열 기준으로 작성되었습니다. Debian, Ubuntu는 내용이 다릅니다.

- 본 글은 CentOS 7 기준으로 작성되었으며, 아파치는 yum 기반 설치를 가정합니다.



1. 아파치 SSL 모듈 설치


yum -y install mod_ssl



2. 서버에 인증서 저장


mkdir /etc/httpd/conf/ssl


# /etc/httpd/conf/ssl 경로에 아래의 인증서 파일들을 저장합니다.

# 경로는 바뀌어도 상관 없습니다. 아래 4번 항목에서 해당 경로를 수정해 주면 됩니다.


# 넣어야 하는 인증서 관련 파일:

#     acu.pe.kr.crt (도메인 인증서) (StartSSL에서 제공하는 zip 파일에 동봉)

#     private.key (비밀키)


# 인증서 파일들에 대한 권한 설정

chown -R root.root /etc/httpd/conf/ssl

chmod -R 644 /etc/httpd/conf/ssl



3. 아파치 설정 파일(httpd.conf)에 SSL 모듈 로드, 옵션 파일 추가


vi /etc/httpd/conf/httpd.conf


# 아래 내용 추가 (빨간 부분을 서버에 맞게 수정)

LoadModule ssl_module modules/mod_ssl.so

Listen 443

<VirtualHost *:443>

    ServerName acu.pe.kr

    ServerAlias www.acu.pe.kr

    DocumentRoot /var/www/html

    SSLEngine on

    SSLCertificateFile /etc/httpd/conf/ssl/acu.pe.kr.crt

    SSLCertificateKeyFile /etc/httpd/conf/ssl/private.key

</VirtualHost>



4. 아파치 재시작


systemctl restart httpd


# 아파치 실행 시 비밀키(private.key)의 pass phrase를 물어봅니다.

# 비밀키를 생성할 때 입력했던 비밀번호를 입력하시면 됩니다.


# 아파치를 실행할 때마다 pass pharase를 입력하기가 귀찮으시면

# 인증서에 아예 비밀번호를 입력시킬 수 있습니다.

openssl rsa -in /etc/httpd/conf/ssl/private.key -out /etc/httpd/conf/ssl/private.key


# 단, 이렇게 되면 이제부터 개인키 파일이 외부로 노출되어서는 절대 안됩니다.

# 또한 작업하기 전의 원본 파일을 별도로 백업해 두시기 바랍니다. (갱신 시 필요)



5. SSL 적용 테스트


테스트 사이트: https://www.digicert.com/help/



*. 에러 발생 시


이런 메시지가 출력되면 실행에 실패한 것임:

Job for httpd.service failed because the control process exited with error code.


왜 실행이 실패했는 지 로그 확인:

systemctl status -l httpd


문제: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:443

이유: 다른 프로세스가 443 포트를 이미 사용중이므로, 해당 프로세스를 종료해야 함

해결: netstat -tunap | grep 443 명령어로 어떤 프로세스가 사용중인지 확인 후 종료

해결: 해결이 안되면 아파치 설정에 Listen 443이 중복 선언된 것, 따라서 주석 처리


문제: 홈페이지 접속 시 신뢰할 수 없는 인증서 메시지가 출력됨

증상: 서버의 인증서(crt)와 브라우저에 나타난 인증서의 지문(fingerprint)이 같지 않음

증상: Common Name(CA)에 이상한 랜덤 숫자가 표시됨

이유: 인증서가 아파치에 제대로 로드되지 않아 엉뚱한 인증서를 클라이언트에 제공함

해결: httpd.conf의 VirtualHost 443이 도메인을 잘 낚아채도록 수정


+ Recent posts