본문 바로가기

전체 글233

[컴퓨터 구조] ep4) CPU와 인터럽트 컴퓨터의 두뇌 CPU == 프로세서에 대해서 자세히 알아보자ㅁCPU(Central Processing Unit) = ALU + 제어장치 + 레지스터  ㅇALU(Arithmetic Logic Unit) 산술연산장치 ALU는 플래그를 내보낸다 아래의 표를 보자 이 플래그들은 모두 플래그 레지스터에 저장된다   이 밖에도 ALU 내부에는 여러 계산을 위한 회로들이 있다가산기: 덧셈보수기: 뺄셈시프터: 시프트 연산 수행오버플로우 검출기: 오버플로우 대비누산기: AC(accumulator) - 연산결과 등을 일시적으로 저장해 두는 레지스터  ㅇ제어장치(Control Unit)제어장치: 제어신호 발생 + 명령어 해석파란색) 제어장치가 받아들이는 것1. 클럭 신호여기서 클럭(clock)이란 컴퓨터의 시간 단위이다 ".. 2024. 2. 14.
[컴퓨터 구조] ep2) 명령어와 주소 지정 방식 ㅇ고급언어와 저급언어고급언어: 대부분의 사람을 위한 프로그래밍 언어 e.g. C언어, python, java, ...저급언어: 컴퓨터가 직접 이해하고 실행할 수 있는 언어저급 언어는 두 가지로 나누어진다, 바로 기계어와 어셈블리어 기계어: 진짜 말 그대로 01010101000010어셈블리어: 이것을 그대로 번역 e.g. push(0101) pop(0101)  (+ 가독성을 위해 기계어를 이진수가 아닌 십육진수로 표현하기도 한다)    ㅇ컴파일 언어와 인터프리터 언어 컴파일 언어: 컴파일러로 전체 코드를 한 번에 변환 후 실행 e.g. C언어인터프리터 언어: 인터프리터로 한 줄 한 줄씩 변환해주며 차례로 실행 e.g. python but 요즈음에는 컴파일 언어와 인터프리터 언어의 경계가 모호해지는 추세다 .. 2024. 2. 11.
[컴퓨터 구조] ep1) 데이터 "컴퓨터는 0과 1밖에 이해하지 못한다" ㅇ비트(bit): 0과 1을 나타내는 가장 작은 정보 단위 따라서 한 비트는 두 가지 정보만을(0 or 1) 표현한다 한 비트는 두 가지 경우의 수(0 or 1)만을 가지므로 2비트로 표현할 수 있는 정보의 개수는 2^2개 3비트로 표현할 수 있는 정보의 개수는 2^3개 . . . n비트로 표현할 수 있는 정보의 개수는 2^n개 여기서 1byte는 8개의 bit를 뜻한다 (1byte = 8bit) 10^3byte = 1kB [킬로바이트] 10^6byte = 1MB [메가바이트] 10^9byte = 1GB [기가바이트] 10^12byte = 1TB [테라바이트] 10^15byte = 1PB [페타바이트] ㅇ워드(word): CPU가 한 번에 처리할 수 있는 데이터 .. 2024. 2. 10.
(주)카닥 앱 안드로이드/iOS QA 엔지니어 후기 군대를 전역하고 유럽여행을 갔다 온 직후에 카닥에서 QA엔지니어로 2주씩 총 1달간 근무하였다, 어찌보면 나의 첫 사회생활이라 말할 수 있겠다근무시간은 보통 10시에 출근해서 7시에 퇴근하는 분위기였다(주 40시간) 회사의 위치는 송파구 문정동에 위치하였으며 문정역부근에 위치한 한양타워 8층이었다 QA엔지니어 인원으로는 총 5명 계약했으며 나이대는 [22살 / 24살 / 26살 / 28살 / 30살] 로 22살인 내가 제일 어렸다(등차수열 공차: 2) 5명 구성원 모두 각양각색 버라이어티했다 22살 (나): 이제 막 군대를 전역한 병아리..24살 여성분: 대학교 막학기 휴학(이 분에 대해 자세하게 알지는 못했다)26살 남성분: 카닥 인턴으로 우리들과 입사동기28살 남성분: 스마일게이트에서 QA일을 전문적.. 2024. 2. 7.
visual studio에서 출력 주소값이 매번 다른 게 불편하다면? 주소값을 출력할 때 매번 주소값이 달라 불편하다면 아래와 같이 설정을 수정해 보자(매우 간단)  1. 디버그에서 제일 아래 디버그 속성 클릭   2. 링커 -> 고급 -> 임의 기준 주소"예(/DYNAMICBASE)"를 "아니요(/DYNAMICBASE:NO) "로 바꿔주자 왜 초기값이 이렇게 설정이 되어있나?이유는 바로 보안때문이다보안때문에 visual studio에서 매번 주소값을 다르게 할당해 주지만우리는 현업이 아닌 교육목적의 코딩을 하므로 설정을 과감히 바꿔주자!       출처 및 참고: 널널한 개발자(유튜브) 2024. 1. 19.
[자료구조] ep0) 자료구조란? 자료구조란 단어를 들었을 때 뭔가 막막하고 어려울 것 같은 느낌이 들지만 전혀 그렇지 않다쫄 필요가 전혀 없다 자료구조에서 자료는 영어로 Data 이 Data는 개발에서 변수와 구조체를 뜻한다우리가 변수를 선언할 때 앞에 자료형을 붙이지 않는가? e.g. int n따라서 자료구조라는 학문은 변수와 구조체의 구조화를 연구하는 분야이다 한번 일상속에서의 자료구조를 찾아보자ㅇ스택(stack): 그릇을 쌓아서 보관하는 것ㅇ큐(queue): 마트 계산대의 줄ㅇ리스트(list): 버킷 리스트ㅇ딕셔너리(dictionary): 영어사전ㅇ그래프(graph): 지도ㅇ트리(tree): 컴퓨터의 디렉토리(폴더) 구조 그렇다면 왜 이 자료구조가 중요한 것인가?물론 자료구조가 알고리즘의 선행되는 개념이기도 하고코딩테스트에 있어서.. 2024. 1. 18.
[운영체제] ep0) 운영체제(OS)를 잘 알아야 하는 이유 (주의!!) [운영체제]를 공부하기 이전에 [컴퓨터 구조]를 먼저 공부하는 것을 추천한다https://claremont.tistory.com/category/Computer%20Science/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B5%AC%EC%A1%B0 'Computer Science/컴퓨터 구조' 카테고리의 글 목록전자정보통신공학, 컴퓨터공학 전공claremont.tistory.com운영체제는 컴퓨터 구조의 지식을 베이스로 갖고 간다물론 운영체제에서 컴퓨터 구조 개념이 쓰일 때마다 내가 링크를 걸어 그 부분을 공부하도록 하게 할 것이지만, 그래도 컴퓨터 구조를 먼저 공부하고 운영체제 공부를 하는 걸 추천한다 (바라보는 시야가 달라진다)ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ.. 2024. 1. 17.
[컴퓨터 구조] ep0) 컴퓨터 구조가 중요한 이유 난 임베디드쪽도 아니고 게임이나 보안쪽도 아닌데 그냥 개발자가 코드만 잘 짜면 되는 거 아니야? 왜 하드웨어적인 측면까지 알아야 하는 건데?? 이유가 크게 4가지가 있다. 1. 개발자에게 매우 중요한 분야인 운영체제가 컴퓨터 구조를 베이스로 갖고 간다 2. 프로그래밍에 대한 근본적인 이해를 얻게 된다 (특히 low한 언어 e.g. 어셈블리어, C언어, 등) 3. 컴퓨터 하드웨어를 미지의 대상이 아닌 분석의 대상으로 바라보는 관점이 달라진다 (바라보는 시야가 더 넓고 깊어진다) 4. 성능, 용량, 비용을 따질 수 있게 된다 (e.g. 서버 컴퓨터 구매 등) - 4번에 따른 추가질문) 아니 요즘 클라우드 서비스 사용하는 시대인데 굳이 성능, 용량, 비용을 따져야 하는가? 위의 사진처럼 따져야 한다 사실 Co.. 2024. 1. 17.