분류 전체보기58 [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 4. 하드웨어의 구조 - CPU CPU의 구성 CPU는 크게 ALU와 제어장치, 레지스터로 나누어져 있다. ALU ALU는 산술 논리 장치라는 이름 그대로 산술 계산이나 논리 연산을 수행한다. 입력값으로 피연산자(Operand)와 명령코드(Opcode)를 받는다. 명령코드는 어떤 연산을 적용할 지를 결정해준다. ALU는 입력값을 바탕으로 연산을 수행하고 결과를 출력한다. ALU가 출력하는 값은 연산의 수행 결과도 있지만, 결과에 따른 추가 정보도 출력한다. 결과가 오버플로우가 발생했는지, 0은 아닌지, 음수는 아닌지 등의 정보를 담은 조건코드가 함께 출력되며 이는 조건코드 레지스터에 저장된다. ** 참고 ALU가 수행할 수 있는 명령 중에는 시프트 연산도 있다. 시프트 연산을 어떤 숫자의 모든 비트를 왼쪽 또는 오른쪽.. 2024. 3. 20. [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 3-2. 컴퓨터의 데이터 저장 방법 2024.03.19 - [CS/Book] - [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 3-1. 컴퓨터의 비트 기억 방법 [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 3-1. 컴퓨터의 비트 기억 방법 시간 표현과 상태 기억 시간 표현 - 발진자와 클럭 사람은 직관적으로 시간이 흐른다는 것을 파악할 수 있다. 하지만 컴퓨터는 스스로 시간의 흐름을 파악할 수 없다. 그렇기 때문에 컴퓨터는 주 kyeong8139.tistory.com 이전 글에서 컴퓨터가 어떻게 1비트를 기억하는지를 살펴보았고, 이를 활용한다면 더 큰 데이터를 저장할 수 있다는 것을 확인했다. 그러면 하나의 레지스터 수준을 넘어 더 큰 데이터를 저장하기 위해서는 어떤 방법을 활용하는지 살펴보자. RAM과 ROM 여러 개의 데이터를 저장하려면.. 2024. 3. 19. [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 3-1. 컴퓨터의 비트 기억 방법 시간 표현과 상태 기억 시간 표현 - 발진자와 클럭 사람은 직관적으로 시간이 흐른다는 것을 파악할 수 있다. 하지만 컴퓨터는 스스로 시간의 흐름을 파악할 수 없다. 그렇기 때문에 컴퓨터는 주기적인 전기신호를 사용하여 시간을 측정한다. 인버터의 출력을 입력에 연결하면 0과 1사이를 진동하는 발진자를 만들 수 있다. 0의 출력은 인버터의 입력으로 들어가 1을 출력하고, 1은 다시 인버터의 입력으로 들어가 0을 출력하기 때문이다. 이와 같은 발진자는 크리스탈을 이용해서도 만들 수 있다. 크리스탈에 전극을 연결하고 전기를 가하면 크리스탈이 구부러진다. 또한 크리스탈은 압력을 받으면 전기를 만들어낸다. 이 두 가지를 이용하면 크리스털에 전기를 가해서 다시 전기를 얻어낼 수 있다. 따라서 크리스타탈이 전기를 다시 .. 2024. 3. 19. [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 2. 전자 회로의 조합 논리 컴퓨터에서 비트를 사용하는 이유 전자 기술에서 아날로그라는 것은 연속적인 것을 뜻하며, 디지털은 이산적인 것을 뜻한다. 연속적이라는 말은 실수를 자리수의 제한 없이 표현할 수 있다는 뜻으로, 자와 같은 것은 연속적인 값을 표현할 수 있다. 반면 손가락은 1과 2 사이에 1.5라는 값이 있을 수 없으므로 이산적이다. 아날로그적인 컴퓨터는 표현할 수 있는 값이 다양하지만, 정밀도의 문제가 있다. 예를 들어 자에서 1.1은 쉽게 찾을 수 있지만 1.000001은 정밀하게 표현하기가 어렵다. 만약 엄청나게 큰 사이즈로 자를 만들듯이 아날로그 컴퓨터또한 크기를 키우면 정밀도가 높아질 것이다. 하지만 현대의 컴퓨터는 전기로 작동하는데, 컴퓨터의 크기가 커질 수록 전자의 이동 거리또한 길어지기 때문에 작업 시간이 길.. 2024. 3. 19. [싸피일기] SW 역량테스트 A형 대비 스터디 회고 (A+ 취득) 싸피 1학기를 수료하기 위해서는 모의 SW 역량테스트에서 일정 이상의 등급을 취득해야하는데, 비전공자의 경우 IM, 전공자의 경우 A 취득이 필수로 요구된다. IM이 기본적인 자바 문법을 활용해 구현하는 문제라면, A형은 알고리즘에 대한 학습이 요구된다. 비전공자이기때문에 최소 요구사항은 IM이지만 A형 이상을 취득할 경우 SW 역량테스트 B형에 응시할 수 있기 때문에 A형 취득을 목표로 스터디를 꾸렸다. SSAFY에서 응시하는 IM과 A형은 모의 시험이지만, B형은 무려 실제 역량테스트로 치뤄진다. 즉 삼성 계열사 입사 시 우대가 적용된다!!! 스터디를 제외한 개인적인 알고리즘 공부 내용이나 방법은 아래 포스팅에 담아두었다. 2024.02.18 - [Writing] - [싸피일기] 백준 골드5 달성 [.. 2024. 3. 14. [싸피일기] Web(front) 페어 프로그래밍 회고 싸피의 1학기는 페어 프로그래밍을 주축으로 돌아간다. 하나의 과목이 끝날때마다 페어와 함께 관통 프로젝트를 진행하기 때문에 끊임없이 협업을 경험할 수 있다는게 싸피의 장점😊 이때까지의 페어 프로그래밍 이때까지 Java, 일타싸피, Web(front)까지 총 세 번의 페어 프로그래밍을 진행하였다. 그런데 Java와 일타싸피를 거치면서 어떤 방식으로 협업을 진행해야할지 고민이 들기 시작했다. 번번히 최종 프로젝트 과정이나 결과가 마음에 들지 않았기 때문이다. Java 프로젝트를 진행할 때는, 서로 하나의 모델을 구현하고, 이후 이를 통합하는 컨트롤러를 구축하는 방식으로 진행했다. 그러다보니 비슷한 기능임에도 불구하고 중복으로 개발하는 비효율이 발생했다. 그리고 비슷한 기능임에도 함수명에 일관성이 없어 컨트롤.. 2024. 2. 24. [한 권으로 읽는 컴퓨터 구조와 프로그래밍] 1. 컴퓨터 내부의 언어체계 비트와 논리 연산 비트는 컴퓨터가 사용하는 언어로서, 0과 1을 기호로 사용한다. 하지만 컴퓨터는 0과 1만을 가지고도 수많은 말을 할 수 있다. 논리적 연산을 수행하기도 하며, 정수와 실수를 표현할 수 있고, 심지어 인간의 언어와 색깔까지도 표현할 수 있다. 먼저 비트는 논리연산을 통해 다른 비트들이 표현하는 내용으로부터 새로운 비트를 만들어낼 수 있다. 이 논리 연산을 하기위한 연산 규칙들의 집합을 불리언대수라고 한다. 수와 마찬가지로, 논리 연산에서도 결합법칙, 교환법칙, 분배법칙이 적용 가능하다. 기본 불리언 연산자에는 NOT, AND, OR이 있다.NOT은 논리적 반대를 뜻한다. AND는 둘 이상의 비트에 적용되며, 모든 비트가 참이면 AND 연산의 결과도 참이 된다. OR연산은 둘 이상의 비트.. 2024. 2. 21. [싸피일기] 백준 골드5 달성 싸피 입과하면서 만든 백준 아이디가 드디어 골드를 달성했다. 알고리즘 수업을 들으면서, 알고리즘 문제해결 역량이 정체한 것 같다는 느낌을 받았다. 분명 열심히 공부를 하고 있는건 같은데, 내 실력은 싸피 입과 전과 크게 다르다는 느낌을 못받았기 때문이다. 그래서 강사님께 알고리즘 학습의 방향에 대한 조언을 구했더니 크게 두 가지 정도를 이야기해주셨다. 1. 어느 정도 실력을 달성하기 전까지는 문제를 많이 풀어볼 것 2. 문제를 고를 때는 사람들이 많이 풀어본 문제 위주로 선정할 것 사람들이 많이 풀어본 문제는 일단 문제에 치명적인 오류가 없을 가능성이 높고, 문제 난이도가 너무 낮거나 너무 높은 일이 잘 없기 때문이라고 하셨다. 그래서 우선적으로 백준 골드를 달성하는 것을 목표로 삼기로 했다. 목표 달성.. 2024. 2. 18. [Java] 백준 11723번 - 집합 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 접근 방법 문제를 보자마자 떠오르는 방법은 HashSet 자료 구조를 이용하는 것이었다. 그래서 먼저 HashSet으로 문제를 해결 한 후, 비트마스킹을 학습하고자 리팩토링 해보았다. HashSet import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.u.. 2024. 2. 14. 이전 1 2 3 4 5 6 7 다음