XOR 연산
2022. 2. 2. 19:36
알고리즘/개념정리
알고리즘 문제풀 때 XOR 연산을 사용한다면 3가지만 기억하자. ^ 기호는 XOR 연산을 말한다. 1. XOR 연산은 순서에 상관없음 a ^ ( b ^ c ) = ( a ^ b ) ^ c 2. 자기 자신을 XOR 연산하면 0 이 나옴 a ^ a = 0 3. 0 과 XOR 연산하면 자기 자신이 나옴 a ^ 0 = a 문제 예시 3개의 점이 주어지고 정사각형을 만들기 위한 나머지 점을 구해라. 예시) (x1, y1), (x2, y2), (x3, y3) 의 3개의 점과 나머지 하나의 점을 통해 정사각형을 만들려고 한다. 나머지 점을 구해라. x1 ^ x2 ^ x3 을 했을 때 나오는 수가 나머지 한 점의 x 좌표가 된다. y1 ^ y2 ^ y3 을 했을 때 나오는 수가 나머지 한 점의 y 좌표가 된다. 따라서..
네트워크 fat tree 구조
2022. 1. 30. 17:07
시스템/네트워크
네트워크 토폴로지 종류를 찾아보면 다양한 종류가 있다. 예전에 정보처리기사를 공부할 때 네트워크 토폴로지를 봤던 기억이 난다. 하지만 자격증을 따기 위한 공부였기 때문에 기억이 나지 않았다. 네트워크 토폴로지는 네트워크의 요소들인 링크, 노드 등을 물리적으로 연결해 놓은 것이라고 한다. 간단하게 말해 네트워크의 요소들이 어떻게 구성되어 있느냐 ! 라고 이해하면 된다. 그래서 정보처리기사를 공부할 때 나왔던 네트워크 토폴로지의 여러 종류가 나왔었는데 트리형(tree), 성형(star), 버스형(bus), 링형(ring), 망형(mesh) 정도 외운 기억이 난다. 그리고 이번에 패트 트리? 팻트리? Fat tree 라는 네트워크 구조에 대해서 공부했다. 현재 HPC 분야에서 일을 하고 있고 자연스럽게 inf..
리눅스 레이드(RAID)
2022. 1. 30. 17:06
리눅스/Linux
이전에도 RAID에 대해서 정리했지만 너무 오래돼서 잘 기억이 나지 않아 다시 정리해보는 시간을 가졌다. RAID 란 무엇이고 왜 사용하고 어떤 종류가 있는지 다시 정리해봤다. RAID 란 RAID 는 Redundant Array of Independant Disk의 약자로 독립된 여러개의 디스크를 중복해서 묶는다 라고 해석해볼 수 있다. 음,, 그러니까 RAID는 여러 개의 디스크들을 묶어서 사용하는 것이구나라고 생각할 수 있다. 그럼 여러 개의 디스크를 왜 묶어서 사용하지? 디스크 "1개"만 사용한다고 해보자. 1개의 디스크를 사용한다고 했을 때 만약 문제가 생겨 디스크를 사용하지 못하게 된다면 디스크에 저장된 데이터를 모두 사용하지 못하게 된다. 그리고 디스크에 크기가 큰 파일을 저장하려고 하면 엄..
메모리 Buffer 와 Cache 이해하기
2022. 1. 20. 19:45
리눅스/Linux
free 명령어에 대해서 정리하다가 컬럼에 나오는 buffer 와 cache 에 대해 정확히 무엇을 의미하는지 궁금해졌다. 그래서 혼자 열심히 찾아 공부한 내용을 정리해보려고 한다. 우선 메모리를 확인하는 명령어 중 하나인 free 명령어 결과를 확인해보면 buffer 와 cache 컬럼을 볼 수 있다. $ free -h total used free shared buff/cache available Mem: 486M 78M 297M 4.4M 110M 391M Swap: 2.0G 0B 2.0G 이전에 면접을 봤을 때 면접을 보시는 엔지니어분이 나에게 이런 질문을 했다. 현재 서비스가 작동중인 서버에 새로운 서비스를 작동시키기 위해서 free 명령어를 통해 메모리가 충분한지 확인해야 한다고 가정했을 때 그럼..
2021년 회고
2022. 1. 2. 18:34
제이로그/회고
이전의 나는 지나간 해에 대해 별다른 여운을 남기지 않았다. 지나간 해에 대해 아무런 감흥도 느끼지 않았고 다가올 해에 대한 생각만 가득했었다. 2021년은 지금까지 지나간 해와는 다르게 과거의 어떤 나보다도 열심히 살았고 치열하게 살았기 때문인지 다시금 생각해보는 시간을 갖게 되었다. 연초부터 나는 열심히 하자는 생각에 부스트코스에서 진행하는 코칭 스터디라는 온라인 스터디를 신청했고 스터디를 할 수 있는 기회가 주어져 온라인 스터디를 듣게 되었다. 살면서 처음 온라인 스터디라는 것을 해볼 수 있는 기회였고 모르는 사람들과 하나의 조를 이루어 공부하고 토론할 수 있다는 점에 많은 설렘을 가지고 온라인 스터디를 진행했던 것 같다. 스터디 일정이 시작되고 처음에는 정말 너무 설레고 재밌을 것 같아 많은 기대..
리눅스 free 명령어
2021. 12. 25. 06:46
리눅스/Command
free 명령어 free 명령어는 man 페이지에서 이렇게 정의되어 있다. 커널에서 사용하는 버퍼와 캐시뿐만 아니라 시스템에서 사용 가능한 물리적 메모리와 스왑 메모리의 총량을 표시합니다. 또한, free 명령어는 /proc/meminfo 의 정보를 가져와 분석하여 수집된다. 쉽게 말해, 리눅스 시스템에서 전체적인 메모리에 대한 현황을 보여주는 명령어라고 생각하면 된다. [사용법] $ free [옵션] [옵션] -b, -k, -m, -g : 바이트, 킬로바이트, 메가바이트, 기가바이트 단위로 출력 --tera, --peta : 테라바이트, 페타바이트 단위로 출력 -h, --human : 자동으로 단위를 조정해서 출력 -w, --wide : 와이드 모드로 실행. cache와 buffers 를 따로 출력 -..
[Shell Script] 1~100 까지 숫자 중 짝수 또는 홀수 출력하기
2021. 12. 18. 23:51
리눅스/Shell script
쉘 크스트립트에서 1 ~ 100 까지의 숫자 중 짝수 또는 홀수 출력해보기 정말 단순하게 쉘 스크립트를 작성한다고 했을 때 이렇게 작성할 수 있다. # 홀수 구하기 for num in $(seq 1 100) do let r=$num%2 if [ $r != 0 ]; then echo $num fi done # 짝수 구하기 for num in $(seq 1 100) do let r=$num%2 if [ $r == 0 ]; then echo $num fi done let 연산자를 사용해서 나머지 값(r) 을 구하고 나머지 값(r) 을 통해 0인지 아닌지 비교해서 짝수인지 (r==0) 홀수인지 (r!=0) 구분하면 된다. 하지만 쉘 스크립트를 작성해 본 사람이라면 이런 방법이 비효율적이라는 것을 알 수 있다. ..
한 달 동안 전화 영어 하고 나서
2021. 12. 17. 13:57
제이로그/회고
어느 날 문득 영어 회화를 해보고 싶다, 나도 해외에 나가서 얘기해보고 싶다는 생각이 들었다. 그래서 이전에 전화 영어를 하려고 생각만 했었고 이번에 정말로 한 번 해보자! 라고 생각해 한 달 동안 전화 영어를 하게 되었다. 전화 영어할 수 있는 곳이 정말 많았다. 그 중에서 후기가 정말 좋은 한 군데를 찾아 레벨 테스트를 신청했고 전화로 테스트를 보게 되었다. 레벨 테스트를 보는데 머릿 속에서 어떻게 말을 해야겠다는 생각은 나는데 영어로 말을 못하니까 정말 답답했다. 그래서 쉬운 질문에도 대답을 잘 못하고 또 잘 듣지 못해서 제대로된 이해도 못했던 것 같다. 그래서 예상대로 가장 낮은 레벨을 받게 되었다 ㅎㅎㅠㅠ 거의 초등학생 수준..ㅋㅋ 화상 영어와 전화 영어, 이렇게 두 개의 수강 방법이 있었는데 ..