분류 전체보기 29

3/5 출근 전 공부하는 컴퓨터 구조, 명령어 사이클과 인터럽트

공부해왔듯이 CPU는 메모리로부터 명령어나 데이터들을 갖고와서 실행함, 필요하다면 값을 저장할 수도 있음  CPU는 메모리 안에 있는 프로그램을 정해진 흐름에 따라서 실행하게됨  이 정해진 흐름, 주기를 명령어 사이클 이라고함  CPU는 정해진 흐름으로만 실행을 하는데 그 정해진 신호를 끊는 신호를 인터럽트라고함  명령어 사이클 프로그램 속 명령어들은 일정한 주기가 반복되며 실행이 주기를 명령어 사이클 이라고함  CPU가 메모리에 있는 어떤 프로그램을 실행하려면?  먼저 메모리에 있는 값을 CPU 레지스터 혹은 CPU 내부로 갖고 와야함  그래야 실행할 수 있으니 인출하는 주기를 인출하는 사이클, 갖고와서 실행하는 사이클을 실행 사이클이라고함  그런데 CPU로 명령어를 가지고 와도 바로 실행이 불가능한 ..

컴퓨터 구조 2025.03.06

3/4 짬내서 공부하는 빅분기 (1) 욕심이 과하면 화를 부를까..?

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 전기기사 + 일본어 + 파이썬 + 빅분기 여러가지 맨날 짬뽕으로 공부하다 보니까 효율이 더 떨어지는 것 같다 ㅠㅠ 기억도 안나는 거 같고..  하지만 어쩌랴!!!! 전기기사 + 일본어 = 회사에서 필요 (일본계 회사이기도 해서..  강요는 아니다) 파이썬 + 빅분기 = 내가 공부하고 싶어서 하는 거니까 포기할 수 없다!!! 네 마리의 토끼를 다 잡겠다  욕심이 과하면 화를 부른다곤 하지만.... 더 열심히 살면 되는거니까!! 그리고 전기기사 일본어는 쉬엄쉬엄 하는거니 지금은 내가 공부하고 싶은 거 더 열심히 하련다!!   정보처리기사 + 산업안전기사 자격증을 취득하면서 자격증을 취득하는 것에 대해서 살짝 맛을 들린 것 같기도하다.. 빅분기도 굳이 필요 없을 것 같긴하지만 데이터를..

카테고리 없음 2025.03.05

3/4 출근 전 공부하는 알고리즘 (스택, 큐)

스택? = LIFO 구조 삽입/삭제의 경우 O(1)을 갖는다(맨위의 값을 삭제/삽입한다고 가정하면)#Pythons=[]s.append(123)s.append(456)s.append(789)print("size:", len(s))while len(s) > 0 :print(s[-1])s.pop(-1)  -1을 pop한다고 하면 맨 뒤의 값 pop한 다는 것임 = pop() 마찬가지 스택을 실제로 사용하는 경우? 웹 페이지에서 뒤로 가는 경우 큐? = LILO 맛집 생각해봐라 맛집 같은 경우 사람들이 줄을 서서 기다리는데 먼저 들어온 사람이 먼저 식당 안으로 들어감  마찬가지로 삽입/삭제의 경우 시간복잡도 O(1)# Pythonfrom collections import deque# Queue는 너무 느림 알고..

알고 리즘 2025.03.04

3/3 회사 세미나 대비 공부..

IC를 다루는 일이지만.. 반도체 공학을 전공하며 아이러니하게도 IC가 뭔지 제대로 알지 못하고 모르는 단어도 굉장히 많기 때문에 공부해보려고 한다. IC가 뭘까? = Intergrated Circuit, 직접회로 여러개의 전자 부품(트랜지스터, 저항, 콘덴서 등)을 하나의 칩안에 집약시켜서 만든 전자회로를 의미한다.  즉, IC는 "작은 반도체칩 하나에 복잡한 회로를 넣은 전자 부품"  회로 기판을 사용하지 않으면 전자 부품들을 전선으로 직접 연결해서 사용해야 하므로 배선이 복잡하고 전선이 고정되지 않아 고장나는 일도 다수 발생  IC의 주요 특징 - 크기가 작고 가벼움 : 하나의 칩에 많은 회로를 집적이 가능함- 전력 소모가 적음 : 개별 부품을 활용한 회로보다 효율적임- 생산 단가가 적음 : 대량 ..

카테고리 없음 2025.03.03

[2/24 출근 전 공부하는 파이썬 기초 자료구조, 알고리즘] 배열

배열 Array - 삽입/삭제 : O(N)- 탐색: O(1)- C++에서는 size 변경 불가- Python은 리스트를 사용 -> 담는 요소를 다양하게 담을 수도 있고 사이즈도 다양하게 변경이 가능함   c++int arr[4] = (10, 11, 12, 13);arr[2] = 5; #Pythonarr = [10, 11, 12, 13]arr[2] = 5    arr[2] 라는 코드를 쓰면 arr 의 시작 인덱스가 있을거고 + (2 * 4byte) = 메모리주소값으로 계산해서 점프하게 됨  배열의 주소 계산 공식 (주소 = 배열 시작 주소 + (인덱스 * 자료형 크기)  한번에 메모리 주소값이 어디있는지 한번에 계산할 수 있기 때문에 탐색 속도가 굉장히 빠름 그래서 O(1) 임 이걸 임의 접근 이라고 함 ..

자료구조 2025.02.24

[2/20 출근 전 공부하는 컴퓨터 구조] C 언어 컴파일 과정 + CPU

1. 프로그램 실행 과정✅ 1.1 전처리 과정 (Preprocessing)➡️ 본격적인 컴파일을 하기 전에 코드에 대해 필요한 작업을 수행하는 과정.✔ #include → 외부 라이브러리 포함✔ #define → 매크로 변환✔ #if, #ifdef → 특정 코드 블록을 포함/제외📌 💡 중요한 이유:전처리가 없으면 코드 재사용성이 떨어지고, 유지보수가 어려움C/C++ 컴파일러가 코드의 해석을 더 빠르게 할 수 있도록 도와줌 ✅ 1.2 컴파일 과정 (Compiling)➡️ 전처리된 소스 코드를 기계어로 변환하는 과정.✔ 소스 코드(.c, .cpp) → 어셈블리 코드(.s) 로 변환✔ 고급 언어 → 저급 언어(어셈블리어)로 변환하는 과정📌 💡 중요한 이유:CPU가 직접 이해할 수 있도록 코드 변환최적화..

컴퓨터 구조 2025.02.20

[2/17 비전공자가 공부하는 컴퓨터 구조 공부 기록 남기기] 명령어 구조 야근좀 제발 그만!!!!!!!

후아.... 야근 야근!!!!!! 요즘 회사가 왜이리 바쁜지 모르겠다.. 비록 지금은 개발과 무관한 일을 하고있지만 언젠가는 개발을 하는 일의 기회가 생겼으면 좋겠다 그때를 위해 계속 난 공부한다!!! 아자1. 컴퓨터는 우리가 작성한 코드를 바로 이해할 수 있을까? #include int main() { printf("Hello, World"); return 0;} C 코드(고급 언어)를 작성하면, 컴퓨터는 이를 바로 이해하고 실행할 수 있을까? 🤔아니다! 컴퓨터는 사람이 읽기 쉬운 고급 언어를 이해하지 못한다.컴퓨터가 이해할 수 있는 저급 언어(기계어)로 변환하는 과정이 필요하다. 2. 고급 언어와 저급 언어📌 고급 언어(High-Level Language)개발자가 쉽게 이해하고 작성할 ..

컴퓨터 구조 2025.02.17

[2/11 비전공자가 공부하는 컴퓨터 구조 공부 기록 남기기😁]

📌 컴퓨터의 정보 단위와 인코딩 (비트, 바이트, 숫자, 문자, 인코딩 개념 총정리)컴퓨터는 0과 1로 모든 정보를 처리하는데, 숫자와 문자, 데이터가 저장되는 방식이 어떻게 다르고,왜 2진수, 16진수, 인코딩이 필요한지 정리해봄.1. 정보 단위 (비트, 바이트, 워드)✅ 1.1 비트(Bit)와 정보 표현비트(bit): 0과 1을 표현하는 가장 작은 정보 단위1비트로 표현할 수 있는 정보의 개수 = 2^1 = 2가지 (예: 0 = 꺼짐, 1 = 켜짐)n비트로 표현할 수 있는 정보 개수 = 2^n예) 8비트(1바이트) → 2^8 = 256가지 표현 가능✅ 1.2 바이트(Byte)와 데이터 크기단위크기설명1 바이트8 비트최소한의 데이터 저장 단위1 킬로바이트 (KB)1,000 바이트작은 텍스트 파일1 메..

컴퓨터 구조 2025.02.12

[비전공자의 Python 공부📖] 기본 문법 변수, 정수, 부동소수, 리스트 + Python을 공부하게 된 계기

🚀 Python 기본 문법 정리 (변수, 정수, 부동소수, 문자열, 리스트)이번 포스트에서는 Python의 기본 문법 중 변수, 정수, 부동소수, 문자열, 리스트에 대해 정리✅ 1. 변수 (Variable)📌 변수란?변수는 데이터를 저장하는 공간임.Python에서는 변수를 선언할 때 자료형을 따로 지정하지 않아도 됨.그냥 변수이름 = 값 형태로 사용하면 됨.📝 변수 예제 코드# 변수 선언x = 10 # 정수y = 3.14 # 부동소수점text = "Hello, Python!" # 문자열numbers = [1, 2, 3, 4, 5] # 리스트# 변수 출력print(x) # 10print(y) # 3.14print(text) # Hello, Python!print(numbers) # [1..

개발/Python 2025.02.09