본문 바로가기

IT234

foo bar baz 의미 및 유래 foo, bar, baz, fie, foe, fee, ...프로그래밍 언어 공부를 하다 보면 foo, bar, baz 등의 변수명 등을 본 적이 있을 것이다 (특히 스택 오버플로우에서 많이 보인다)우리나라로 치면 변수명을 갑, 을, 병, 정 느낌으로 선언하는 것이다 그렇다면 이 foo, bar, baz의 유래는 어떻게 될까?이 foo, bar, baz의 유래는 아무도 모른다그치만 유래에 대한 추측들로 크게 3가지가 있다   1. 2차세계대전 당시 미 육군에서 쓰이던 여러 줄임말 중, 개판이 됐다는 뜻인 FUBAR(Fucked Up Beyond All Recognition / Repair)에서 Foo와 Bar가 유래했다는 설  2. 1930 ~ 1952년 사이에 만화가 Bill Holman 이 그린 Smo.. 2024. 3. 26.
[컴퓨터 구조] 후기 컴퓨터 구조에 대한 복습 및 정리를 끝마치게 되었다회사 프리랜서일과 병행하느라 조금 디뎠지만, 그래도 이전에 한 번 깊숙이 배웠던 내용인지라 빠르게 진행할 수가 있었다세종대 전자정보통신공학과에는 스파르타라는 별명을 가지신  SoC 권위자 이성주교수님이 계신다 (지금은 반도체시스템공학과에 가신 걸로 알고 있습니다) 그 교수님의 컴퓨터구조론 강의평을 보면 컴퓨터 구조에 대해 아주 깊고 빠삭하게 배울 수 있지만 체감상 6~9학점에 스파르타식으로 너무 너무 힘들다는 강의평들이 여럿 적혀있다솔직히 보고 좀 겁이 났지만 컴퓨터 구조가 CS에 있어서 근간이 되는 중요한 과목이라 생각하여 수강신청 때 1순위로 신청을 하였다 솔직히 이제 와서 생각해 보면 수강하는 동안에는 많이 힘들었다 컴퓨터시스템구조론(William .. 2024. 3. 5.
[운영체제] ep1) 운영체제의 큰 그림 운영체제(Operating System): 실행할 프로그램에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램(컴퓨터에서 가장 중요한 프로그램이다)여기서 자원이란 시스템 자원으로써 프로그램 실행에 마땅히 필요한 요소들을 말한다 e.g. CPU, 메모리, 보조기억장치, I/O, 패킷, 파일 등 운영체제를 잘 알려면 커널의 개념을 확실하게 알고 가야 한다ㅇ커널(kernel): 운영체제의 핵심 서비스를 담당하는 부분메모리에는 커널 영역과 사용자 영역으로 나뉘어져 있으며, OS는 커널 영역에 적재되어 자원 할당과 프로그램 실행에 도움을 준다 앞으로 운영체제를 지칭할 때는 특별한 언급이 없는 이상 커널을 지칭한다고 생각하면 된다    대부분의 운영체제 서비스는 커널에 있지만 커널에 포함되지 않.. 2024. 3. 3.
[컴퓨터 구조] 추가지식2) SMP, 클러스터, NUMA, 클라우드 컴퓨팅 [병렬 프로세서 시스템의 유형]- 단일 명령어 + 단일 데이터 스트림: SISD(Single Instruction Single Data) - 단일 프로세서- 단일 명령어 + 다중 데이터 스트림: SIMD(Single Instruction Multiple Data) - 벡터, 배열 프로세서- 다중 명령어 + 단일 데이터 스트림: MISD(Multiple Instruction Single Data) - 거의 사용 x- 다중 명령어 + 다중 데이터 스트림: MIMD(Multiple Instruction Multiple Data) - 메모리 공유: SMP, NUMA 시스템 / 분산된 메모리: 클러스터  ※ thread: segment of processtask: Linux에서 칭하는 process 또는 thre.. 2024. 3. 2.
[컴퓨터 구조] 추가지식1) ROM, 바이오스, 펌웨어, QPI, SPEC, 임베디드 ROM에 대해 더 자세히 알아보자ROM → PROM → EPROM → EEPROMROM(Read Only Memory): 변경할 수 없는 데이터를 저장하는 데 사용 e.g. 바이오스PROM(Programmable ROM): 쓰기 기능 제공 ROM (한 번만 쓸 수 있다)EPROM(Erasable PROM): 삭제 가능한 PROMEEPROM(Electrically EPROM): 전기적으로 삭제 가능한 EPROM (더 매력적이다)  보통 ROM에는 바이오스(BIOS)가 있다ㅇ바이오스(Basic Input/Output System): 소프트웨어와 하드웨어 간의 정보 전달의 매개체 역할을 하는 펌웨어  메모리, 디스크, 모니터와 같은 주변기기 사이의 정보 전송을 관장하는 일종의 프로그램이다 컴퓨터의 가장 low.. 2024. 3. 2.
[컴퓨터 구조] ep8) 입출력장치(I/O) 이번 절에서는 장치 컨트롤러와 장치 드라이버라는 개념을 통해 다양한 외부 입출력장치가 컴퓨터 내부와 어떻게 연결이 되고 소통하는 지를 알아보겠다 참고로 이번 장에서 언급하는 입출력장치에는 보조기억장치도 포함된다 (보조기억장치가 컴퓨터 내부와 정보를 주고받는 방식은 입출력장치와 크게 다르지 않다) 장치 컨트롤러에 대해 알아보기 전에 먼저 I/O를 다루기 까다로운 이유 2가지를 알아야 한다 1. I/O에는 종류가 너무 많다 이 말은 곧 규격이 너무 많다는 것과 같다 비유하자면 CPU와 메모리가 한국어를 사용하지만, 프린터는 영어, 스피커는 중국어, 모니터는 일본어를 사용하는 상황과 같다 2. 보통 CPU와 메모리의 데이터 전송률은 높지만 I/O의 데이터 전송률은 낮다 여기서 전송률(transfer rate).. 2024. 3. 1.
[컴퓨터 구조] ep7) 보조기억장치 하드디스크와 플래시메모리같은 보조기억장치들은 개인 컴퓨터부터 서버구성 및 관리까지 다방면으로 사용되는 부품이기 때문에 잘 알아놔야 한다   ㅇ하드디스크 (HDD: Hard Disk Drive)하드디스크는 자기적 성질을 이용하는 자기디스크의 일종이다수많은 N극과 S극들이 0과 1의 역할을 수행한다 ※ RPM: Revolution Per Minutee.g. RPM이 15000이면 1분에 15000바퀴HDD는 여러겹의 플래터로 이루어져 있고 플래터 양면을 모두 사용할 수 있다보통 연속된 정보는 한 실린더에 기록한다(디스크 암이 움직일 필요가 없기 때문)  하드디스크가 저장된 데이터에 접근하는 시간은 크게 3가지로 나뉜다1. 탐색시간 (seek time): 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 .. 2024. 2. 24.
[컴퓨터 구조] ep3) 컴퓨터 구조의 큰 그림 우리가 앞으로 배워나갈 컴퓨터 구조의 큰 그림을 살펴보자컴퓨터 구조가 처음이라면 낯선 용어에 많이 힘들 수 있지만 뒤에 가서 또 자세하게 배운다 그러니 너무 낙심하지 말고 그냥 눈도장 찍는 느낌으로 재밌게 읽어보자 컴퓨터는 "명령어를 처리하는 기계"이다우리가 알아야 할 컴퓨터 구조 지식은 크게 두 갈래로 나뉜다1. 컴퓨터가 이해하는 정보(0과 1로만 표현된 정보): 데이터, 명령어2. 컴퓨터의 네 가지 핵심 부품: CPU(프로세서), 메모리(주기억장치), 보조기억장치, 입출력장치(I/O)※ 앞으로 메모리라는 용어가 나오면 특별한 언급이 없을 시 RAM을 생각하면 된다   ① 메인보드② 메인보드 안의 시스템 버스③ CPU: 메인보드 내 시스템 버스와 연결 ④ 메모리(RAM): 메인보드 내 시스템 버스와 연.. 2024. 2. 22.
[컴퓨터 구조] ep6) 메모리와 캐시메모리 주기억장치에는 RAM과 ROM이 있다고 ep0에서 배웠다우리가 지금까지 메모리라 불러왔던 RAM에 대해 더 자세하게 알아보자 ㅇRAM"메모리(RAM)에는 실행할 프로그램의 명령어 + 데이터가 저장된다"(만약 CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행) 휘발성(volatile): 전원을 끄면 저장된 내용이 사라진다 e.g. RAM비휘발성(non- volatile): 전원을 커도 저장된 내용이 유지된다 e.g. 보조기억장치(HDD, SSD, CD-ROM, USB메모리 등), ROM    다다익램이란 말을 들어봤는가? 100%는 아니지만 어느 정도 맞는 말이다램이 클 수록 많은 프로그램을 동시에 실행하는 데 유리하다  그렇다면 램의 종류에 대해 알아보자ㅇD.. 2024. 2. 19.