# data[].attributes.body
학교 면접 및 정처기 시험 기간으로 많이 늦었습니다 .. ㅠ.ㅠ 저번에 포기했던 게 아쉬워서 이번엔 늦더라도 완주해볼게오..

# data[].attributes.attachment_link.title
[혼공머신]3주차 학습내용

# data[].attributes.attachment_link.description
3주차 용어 마인드맵 ! 선택과제
로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요? -> 시그모이드 함수 확률은 0~1까지의 값을 갖는데, 해당 함수가 0~1로 값을 변환해주는 역할을 한다.

# data[].attributes.body
크아악 너무늦었네요

# data[].attributes.body
너무 늦었지만.. 차근차근 정상 궤도로...

# data[].attributes.attachment_link.description
휘발성 저장 장치 ; 전원 끄면 저장된 내용이 사라지는 저장 장치 (RAM)
비휘발성 저장 장치 ; 전원 꺼도 저장된 내용 유지되는 저장 장치 (SSD, USB, 하드디스크) CPU - 보조기억 장치에 직접 접근 불가
=> 보조기억장치(비휘발성)에 보관할 대상을 저장

# data[].attributes.body
급한 일정 마무리 하고 다시 달리고 있습니다.

요기가 절반 지점이라니!

100% 이해를 하는 건 아니지만,

먼저 기록하고 책의 동영상을 시청하고 있습니다........... 바짝 진도 쫓아갈게요!

# data[].attributes.attachment_link.title
혼자 공부하는 네트워크(3)

# data[].attributes.body
늦어서 죄송합니다 내용이 갑자기 어려워졌지만 씩씩하게 완주해야죠 ㅎㅎㅎ

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 서울꺼벙천사 Cross 몽천사

# data[].attributes.attachment_link.description
안녕하세요!!! 서울 꺼벙 천사입니다 01. 혼자 공부하는 네트워크의 일정과 커리큘럼 2025년 1월 6일을 시…

# data[].attributes.body
열심히 하고 싶었는데 엄청나게 늦어버렸네요.. 4주차는 조금 늦어도 빨리 끝내고 오겠습니다!!

# data[].attributes.body
너무 당당하게 엄청난 지각을 해버렸습니다.

퀄리티도 급락..

와플 들고 도망가지 않았습니다.!!!

4주차 숙제까지 더해서 더 보강해오겠습니다

ㅠㅠ죄송합니ㄷr இ௰இ

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
감기에 걸려서 골골대는 사이 대 지각쟁이가 되어버리고 말았습니다 ㅜㅜ

# data[].attributes.attachment_link.title
[혼공학습] 혼자 공부하는 자바스크립트 3주차 : 네이버 블로그

# data[].attributes.body
점점 포기하고 싶어지니까 숙제 제출을 늦게하게되네요ㅠㅠ 다음 4주차 과제에서는 열심히 노력하겠습니다.

이번에 바흐 클래식은 정말 듣기 좋았어요!!

# data[].attributes.body
합법적 지각을 했습니다. 그런데 좀 많이 늦어서 4주차도 얼른 해야겠네요 하하

# data[].attributes.attachment_link.description
기본 미션비파괴적 처리와 파괴적 처리의 의미와 장단점 설명하기비파괴적 처리:연산 후에도 원본 데이터가 바뀌지 않는 것예) 숫자 연산비파괴적 처리는 불변성을 유지하며 안정적인 코드 작성에 유리하지만, 메모리 사용량이 증가할 수 있다.파괴적 처리:연산 후에 원본이 바뀌는 것예) 배열의 push() 메서드.파괴적 처리는 메모리를 절약할 수 있지만, 원본 데이터가 변하기 때문에 사이드 이펙트가 발생할 수 있다.선택미션p. 173 확인 문제 3번 문제 풀고, 풀이 과정 설명하기공통적으로 함수실행 이후 원본 데이터에 변화가 있는지 확인하면 알 수 있다.비파괴적 처리> const strA = ”사과, 배, 바나나, 귤”;undefined> strA.split(”,”);[”사과”, ” 배”, ” 바나나”, ” 귤”]>…

# data[].attributes.body
감사합니다

# data[].attributes.attachment_link.readable_text
휘발성 저장장치: 전류가 차단되면 안에 있는 정보는 전부 사라짐.

램의 용량이 많을 수록 많은 프로그램을 메모리에 올릴 수 있음. 하지만 필요 이상은 더 이상 성능 향상 기대가 어려움.

Dynamic RAM

동적램인데, 뭐가 동적이냐? -> 주기적으로 내부 축전기의 전류를 흘러주어 충전해야되서 동적램이란다.

->??? 램자체가 계속해서 전류를 공급해줘야 되는 거 아니야???

-> 전류 공급은 그냥 기본이고, 축전기 리프레시도 추가로 해줘야 된다는 것.

이렇게 불편해보여도 단점만 있는게 아니라, 오히려 장점이다.

일단 기본 소비 전류자체가 낮다. 리프레시와 별개로 소비전력자체는 SRAM대비 거의 없는 편

설계 최소 단위가 단순하여 집적도를 높이기 쉽다 == 대용량 늘리기가 용이하다

다만 SRAM 대비 속도는 느리다.

주기억장치로 사용된다

Static RAM

전류만 공급하면 동적으로 뭔가 리프레시 같은걸 해줄 필요는 없는 램이라서 정적램이다.

속도는 빠르지만, 복잡성이 커서 집적도를 높이기 어려우니 용량을 늘리기 쉽지 않다.

캐시메모리에 사용된다

Synchronous DRAM

DRAM의 일종이다. 그런데 동기화 DRAM이다. 무엇과 동기화 된다는 것인가? CPU 클럭 신호와 동기화 된다는 의미이다. 비로소 현대 CPU와 작업하기 딱인 DRAM이 등장한 것.

Double Data Rate SDRAM

2배 대역폭 SDRAM이다. SDRAM을 다른 말로 DDR SDRAM과 구별하여 Single Data Rate SDRAM 즉 SDR SDRAM 이라고도 한다.

DDR SDRAM's data rate == 2 * SDR SDRAM's data rate

DDR2 SDRAM's data rate == 2 * DDR SDRAM's data rate == 4 * SDR SDRAM's data rate

DDR3 SDRAM's data rate == 2 * DDR2 SDRAM's data rate == 8 * SDR SDRAM's data rate

DDR4 SDRAM's data rate == 2 * DDR3 SDRAM's data rate == 16 * SDR SDRAM's data rate

1. 3번 2. DDR SDRAM, SRAM, DRAM, SDRAM 3. SRAM, DRAM, DRAM, SRAM 4. 2, 2

물리주소는 진짜 하드웨어 메모리에 실제로 프로그램이 실려 있는 주소이다. 명령어나 데이터들의 실제 주소이다.

논리주소는 프로그램과 CPU가 알고 있는 주소이다. 논리적으로 시작주소는 항상 0이고, 0을 기준으로 얼만큼 떨어져 있는지로 프로그램과 CPU는 불러오고 저장하려 한다

왜냐하면 프로그램 실행할때마다 다를건데 대체 프로그램이 무슨 수로 알고서 자기 자신 주소를 일일히 알고 있어야하는가. 그리고 그렇게 자기 자신의 주소가 굉장히 복잡한 주소라면 그게 가독성이 좋을까?

이미 앞서 공부했던 것 처럼, 베이스 레지스터라는 곳에 해당 프로그램의 물리적인 시작 주소를 저장하고 이걸 Offset으로 사용하며 변위주소지정방식 처럼 offset에 논리 주소를 더해가며 실제 메모리와 CPU는 소통하게 된다.

이를 담당하는 기관은 MMU(memory management unit)이다. 주소 버스를 반드시 거치게 되어 있는데 메모리에 접근하기 위해 주소버스를 거치기 직전에, 혹은 메모리로 부터 가져올때 주소버스로 부터 온 주소값은 전부 MMU를 통하여 offset이 더해지고 빼진다.

프로그램에는 일정 길이라는게 있다. 그 정해진 일정길이를 넘어가는 명령어를 한 프로그램에서 작동시키려고 하면, 해당 명령은 일단 인터럽트 트랩에 걸리게 되며, 오차가 있다면 다시 계산하여 정상 작동 시키고, 만약 아니고 치명적이라면, 프로그램은 뻗을것이다.

그 정해진 일정길이값은 한계레지스터에 저장된다.

1. 3번 2. 3번 3. 1번 4. 한계 레지스터, 베이스 레지스터

CPU에 가까울 수록 빠르고, 비싸고, 용량이 작다.

CPU에 멀 수록 느리고, 싸고, 용량이 크다

레지스터 다음으로 가장 CPU와 가까운 녀석이다. 실제 역할도 메모리 역할을 한다.

CPU는 바로 항상 메모리에 접근하지 않고, 캐시 메모리에 자기가 찾는 데이터가 있는지를 항상 먼저 조회하고 있다면 캐시메모리를 사용한다

일반적으로 L1, L2, L3 로 구분하며, 해당 녀석들은 빠른 순서이자 CPU에 가까운 순서이다. L1, L2는 코어 내부에 있고, L3는 코어 외부에서 멀티 코어들이 전부 사용가능한 공토 공간으로 사용되는 형태를 일반적으로 취한다.

첫째, CPU는 최근에 접근했던 메모리 공간에 다시 접근한다. 둘째, CPU는 접근한 메모리 공간 근처 주소인 이전 혹은 이후 주소에 접근한다.

위 두가지 원리에 입각하여 캐시 메모리에 올라올 데이터들이 정해진다. 현대 CPU의 캐시 적중률은 85프로 이상이다.

1. 레지스터, 캐시 메모리, 메모리, 보조기억장치 2. 4번

HDD: Hard Disk Drive

자기 디스크: magnetic disk

플래터: platter. 내부의 원판. 양면에 데이터가 기록되고 보통은 플래터가 여러장이 들어있음.

스핀들: spindle. 플래터를 회전시키는 장치

헤드: 플래터 한 면당 하나씩 위치하여 해당 면의 데이터를 기록하고 읽어들일 수 있음

디스크암: 헤드의 깊이를 컨트롤하기 위한 장치

트랙: 센터부터 가장자리까지 일정 두께의 원들이 모여 플래터 원판을 만드는데 이런 원 하나가 트랙

섹터: 최소 데이터 저장 단위 공간. 트랙의 일부분을 담당. 섹터가 여러개가 모여 트랙을 이룸

실린더: 플래터 양면, 그리고 다른 플래터들 전부 같은 xy변위의 트랙들이 존재할것. 그런 트랙들을 묶어서 실린더라고 함. 연속된 데이터를 저장할때는 일단 실린더 단위로 묶여서 연달아 저장됨. 그래야 디스크암의 탐색 운동을 줄일 수 있음.

탐색시간: seek time. 디스크암이 헤더를 움직이는 시간. 찾고자 하는 트랙에 맞게 헤더를 위치시킴

회전지연: rotational latency. 플래터를 회전시켜 찾고자하는 섹터에 헤더를 위치시키는 시간

전송시간: transfer time. 실제 읽어들여서 cpu까지 도달하는 시간

다중 헤드 디스크: multiple head disk. 트랙별로 헤드가 위치한다. 예를들어 플래터 하나당 트랙이 3개라면 한 면당 3개. 플래터가 8장이면, 3*8*2 = 48 양면이니까. 이렇게 되면 seek time이 없어지게되고 회전지연만 남게 된다. 고정 헤드 디스크(fixed head disk)라고도 함.

단일 헤드 디스크: single head disk. 디스크암이 움직이며 트랙별로 헤드를 이동시킴. 이동 헤드 디스크라고도함(movable head disk)

usb, sd카드, ssd, rom 등 다양한 구간에서 사용 중

셀: cell. 플래시 메모리에서 데이터를 저장하는 가장 작은 단위. SLC(single level cell) MLC(multiple level cell) TLC(triple level cell) 등을 나눌때 cell을 어떻게 설계하냐에 따라서 설계가 달라진다

SLC는 한 cell이 1bit를 표현, 0과 1 총 2가지 $2^1$ MLC는 2bit. TLC는 3bit이다. SLC가 가장 용량을 늘리기 어렵고, TLC가 용량을 늘리기 쉽다.

셀 cell들이 모여 페이지 page를 이루고, 페이지가 모여 블록 block을 이루고, 블록이 모여 플레인 plane을 이루고, 플레인이 모여 다이 die를 이룬다.

읽기 쓰기의 최소 단위가 페이지이다.

삭제의 최소 단위는 블록이다.

페이지는 총 3가지 상태를 가진다. free, valid, invalid

free: 자유롭게 읽고 쓰고 할 수 있는 상태이다. 비점유 상태.

valid: 유효한 데이터가 페이지를 차지하고 있는 상태.

invalid: 데이터가 있긴한데, 쓰레기 데이터가 차지하고 있는 상태.

총 4개의 페이지를 담을 수 있는 블록이 있다고 했을때 A B C 가 순서대로 들어가 있는 상황. 이때 A를 변경하여 A'로 만드는 방법은 A를 invalid 상태로 만들어 버리고 남은 페이지에 A'를 추가하여 A' B C를 저장하는 블록으로 만드는 방법을 취한다.

A페이지를 직접 지울 수 없다. 왜냐하면 삭제의 단위는 블록이기 때문

하지만 이렇게 되면 용량을 실제 사용도 안하는 데이터들이 너무 많이 차지하게 됨.

그래서 가비지 컬렉터라는 기능을 이용하여. 블록을 검사하여 Valid 페이지만 살려서 따로 복사한뒤에 이전 블록을 비로소 삭제해버리는 기능을 자동으로 제공하도록 발전됨.

1. 플래터,스핀들,헤드 2. 2번

Rebundent Array of Independent Disks: 복수 배열 독립 디스크

여러개의 디스크로 커다란 하나의 디스크를 구성하는 방법

가격이 저렴할 뿐만 아니라, 읽고 쓰기 행위 자체를 여러개가 분산해서 담당하게 되기때문에 성능향상 효과도 있음

진짜 연속된 데이터가 있으면 분산된 만큼 하나씩 분산해서 쓰고 읽는 방법. 가장 단순하고, 가장 군더더기 없이 읽고 씀. 하지만 디스크 하나라도 고장나면 데이터가 손실되게됨.

RAID0를 2개로 복제하여 복사본을 항상 쓰는 방법. 디스크 중 하나가 고장 나도 복제본 디스크가 있기 때문에 안정성 확보. 그런데 그만큼 용량은 비효율적.

연속된 데이터들을 RAID0처럼 분산 저장하는건 맞는데 이때 패리티 정보를 담는 전용 디스크를 두는 방법. 이 패리티 데이터로 인해 다른 디스크에 저장된 데이터에 오류는 없는지 체크가능하고, 복구도 가능함.

하지만, 패리티 정보를 누적하여 만들기 위해서 다른 디스크에 데이터 쓰기가 이뤄질때 마다 한번씩 페리티 정보도 써야하기 때문에 패리티 디스크에 과부하가 걸리는 구조.

패리티 디스크에 과부하가 걸리는 구조를 깨기 위해. 모든 디스크가 데이터를 저장하는 역할 뿐만아니라 분산해서 패리티 정보를 저장하는 방식.

패리티 데이터 자체에대한 복구까지 고려된 방식. 각기 다른 디스크에 같은 패리티 데이터를 복제하여 저장하도록 담당시킨다. 당연히 쓰기에 더 많은 자원이 든다.

1. 2번 2. 3번 3. RAID6

다양한 여러 장치들은 각자의 속도, 처리량, 요구 데이터 등이 전부 다르기 때문에 이걸 CPU가 각 장치마다 맞춤형으로 맞춰 줄 수가 없다. 그래서 중간 다리 역할을 하는 녀석이 장치 컨트롤러이다.

장치 컨트롤러를 그러기 위해 기본적으로 저장 장치가 필요하다. CPU에 보낼 데이터, 지금 장치의 상태 등을 저장해야 되기 때문임. 장치 컨트롤러 내부에는 데이터 레지스터, 상태 레지스터, 제어 레지스터가 있음

데이터 레지스터: 입출력 장치가 CPU에 보내고 싶은 데이터를 모아 놓는 공간. 출력의 경우에는 그 반대

상태 레지스터: 입출력 장치가 대기 상태인지, 아직 막 작업 중인 상태인지 등을 저장

제어 레지스터: CPU가 입출력 장치에 보낸 명령을 저장하는 공간

장치 컨트롤러가 CPU와 다양한 입출력 장치들이 서로 소통하기 위한 하드웨어적 장치였다면, 장치 드라이버는 중개 소프트웨어이다.

OS가 기본적으로 장치 드라이버를 인식하여 설치해야하며, 설치가 안되었다면, 그 어떤 입출력 장치도 소통할 수 없다.

1. 1번, 3번 2. 2번 3. 장치 컨트롤러, 프로그램 4. 2번

프로그램이 입출력 장치를 컨트롤 하는 경우에 프로그램 입출력 방식이라고 함.

장치 컨트롤러 내부에는 CPU와 소통하기 위한 레지스터들이 있는데, 제어 레지스터에 명령어를 쓰고, 그 명령어로 입출력 장치가 인식하여 상태 레지스터가 바뀌고, 상태 레지스터가 바뀌면 CPU가 입출력 장치에 보내고 싶은 데이터가 써지거나 혹은 데이터 레지스터에 있는 데이터를 CPU가 읽는 방식으로 동작하게됨.

그런데 여기서 결국 CPU는 메인보드에 부착된 어떤 입출력 장치의 장치 컨트롤러의 레지스터에 접근하고자 할때는 고유한 주소값으로 접근해야 될텐데. 그 방법이 두 가지가 있음.

첫째, CPU는 메모리와 소통한다. 이런 메모리와 소통하는 기존 방식과 다르지 않은 명령어와 주소로 입출력 장치와 소통하는 memory mapped I/O 방식이다. 메모리 일부 공간에 입출력 장치 레지스터의 주소랑 메핑된 공간을 할당하여, 마치 그 공간이 장치 컨트롤러의 공간인냥 사용하는 방법

둘째, 메모리에 접근하는 방법은 시스템 버스의 데이터 버스, 제어버스, 주소버스 를 이용하여 필요할때 메모리에 접근하는 방식이다. 이것처럼 입출력 장치들을 묶어서 소통할 수 있는 버스를 입출력장치 버스를 둠으로 써 모든 입출력 장치에 접근하는 방법을 뚫는 방법. 이는 메모리와 소통할때 쓰이는 일반적인 명령어 집합이 아닌 다른 명령어 특히 다른 오퍼랜드를 사용 할 수 밖에 없는 방식이다. 이를 isolated I/O 고립형 입출력 방식이라고 한다.

프로그램이 인터럽트를 발생시킬 수도 있고, 하드웨어가 인터럽트를 발생시킬 수도 있다. 하여간 인터럽트를 통해 CPU가 클럭 신호마다 체크하여 입출력 장치와 적절한 소통을 하는 방식이다.

그런데 입출력 장치가 한두개도 아니고, 동시 다발적으로 특히 같은 타이밍에 CPU에 마구 인터럽트를 던져 놓는 상황은 충분히 발생한다. 이를 컨트롤하기 위해 PIC Programmable Interrupt Controller 라는 하드웨어가 메인보드에 있어서 CPU에게 전달될 인터럽트들을 제어하는 중개 역할을 한다.

항상 과장되게 극단적으로 생각해야한다. 입출력장치 하드웨어는 수백개가 존재할 수 있다. 이를 PIC하나가 감당하게 하는 설계를 하지 않는다. PIC는 상위 PIC와 연결되어 어떤 하위 입출력 장치 그룹들의 인터럽트들을 우선 처리할지 등을 또 컨트롤하는 구조를 취한다.

Direct Memory Access Controller라는 하드웨어를 통하여 입출력장치가 메모리에 접근해야할때 CPU가 두번 세번 일하는걸 방지한다.

CPU의 부담을 덜어서 간단한 단순 동작을 대신 처리하게 하는 장치이다.

CPU는 DMA 컨트롤러에 처리해야할 명령들을 전달하고, 해당 명령을 이용하여 입출력장치와 소통, 제어 레지스터, 상태 레지스터, 데이터 레지스터를 모두 사용한 결과가 완료되면, 그제서야 CPU에 일처리 다했어요 인터럽트만을 CPU에게 쏜다. CPU는 다른 복잡한 작업을 하는 동안 입출력 장치 동작 정도는 DMA 컨트롤러가 대신해주는 것

입출력 버스

DMA 뿐만 아니라, 입출력 장치가 무언가를 하여 transfer 즉 통신을 할때는 반드시 메인보드의 버스를 이용해야 한다. 그런데 버스는 고속도로가 아닌 기차 선로여서 한번에 한 장치만 점유할 수 있는 구조이다.

만약 입출력 버스라는게 없다면, 시스템 버스를 사용해야되어 CPU가 제대로 일을 할 수가 없게 된다.

그래서 등장한게 입출력버스이고, 대표적인건 PCI 버스가 있다. Peripheral Component Interconnect 그 발전형인 PCI Express PCIe 버스가 현재 주류이다.

1. 2번 2. A 다음 B 3. 3번 4. 메모리 맵 입출력 방식 5. 고립형 입출력 방식

# data[].attributes.attachment_link.title
[혼공컴운][3주차] CH06~08 메모리, 캐시메모리, 보조기억장치, 입출력장치

# data[].attributes.attachment_link.description
CH06 메모리와 캐시메모리06-1 RAM의 특징과 종류 RAM의 특징휘발성 저장장치: 전류가 차단되면 안에 있는 정보는 전부 사라짐.RAM의 용량과 성능 램의 용량이 많을 수록 많은 프로그램을 메모리에 올릴 수 있음. 하지만 필요 이상은 더 이상 성능 향상 기대가 어려움.RAM의 종류DRAMDynamic RAM동적램인데, 뭐가 동적이냐? -> 주기적으로 내부 축전기의 전류를 흘러주어 충전해야되서 동적램이란다.->???

# data[].attributes.body
슬슬 제가 포기했던 부분이 나오니까 공부가 막막하게 느껴지는데 포기하고 싶지는 않다는 생각이 듭니다. 늦었지만 3주차 제출합니다 :)

# data[].attributes.attachment_link.description
인스턴스 : 클래스로부터 만들어진 객체매번 Java 공부할 때마다 헷갈렸는데 확실히 그림으로 보니까 이해가 잘 되었다. 자바에서는 설계도가 클래스이고 클래스로부터 만들어진 객체를 인스턴스라 부른다. 책에 나와있는 것처럼 자동차 회사에서 한 자동차의 설계도를 통해 여러

# data[].attributes.body
숙제를 밀리는게 왜 위험한건지 깨달았습니다.

다음 4주차는 내일 올려서 칭찬받아보겠습니다.

# data[].attributes.attachment_link.title
3주 - 과제 및 마무리

# data[].attributes.body
이렇게, 이시간에, 제출 할 수 있게 되어 다행입니다.

# data[].attributes.attachment_link.title
혼공학습단 13기- 3주차

# data[].attributes.attachment_link.description
@ 2주차 keyword 확인- 레지스터의 동작 흐름 (pp. 114~ 117)- 인터럽트 - 동기 인터럽트(예외), 비동기 입터럽트(하드웨어 인터럽트)- 하드웨어 스레드 ex) 1코어 2스레드 - 소프트웨어 스레드 ex)1코어 1스레드에서도 다중으로 스레드 실행- CISC : 복잡한 명령어 구현, 가변 길이 명령어 특징, 메모리 공간 절약 → 명령어 처리시 긴 클럭 주기 필요- RISC : 단순한 명령어 구현, 고정 길이 명령어, 많은 메모리 필요 → 명령어 처리시 1클럭 내외 6.1. RAM의 특징과 종류6.1.1. RAM의 특징- 실행할 프로그램의 명령어와 데이터가 저장되지만 전원을 끄면 모두 없어짐(휘발성 저장 장치)→ 실행할 대상 저장- 보조기억장치의 경우 전원을 끄면 데이터가 사라지지 않음…

# data[].attributes.body
설연휴.. 독감같은 감기와 함께하느라 너무나도 늦게.. 올립니다.. ｡° ૮₍°´ᯅ`°₎ა °｡

늦은 만큼 더 열심히 부지런히 따라가겠습니다..

모두들 건강하시고 새해 복도 많이 받으세요! ⸜(⠀ ᐢ ᵕ ᐢ )⸝‍⸜( ᐢ ᵕ ᐢ )⸝‍

# data[].attributes.attachment_link.description
* ‘혼자서 공부하는’ 컴퓨터구조+운영체제 이지만, 혼자보단 여럿이하면 더 좋으니 혼공 학습단 13기와 함께합니다 :) [3주차 학습 목록] ʕo•ᴥ•ʔ✎Ch06. 메모리와 캐시 메모리01. RAM의 특징과 종류02. 메모리의 주소 공간03. 캐시 메모리 Ch07. 보조 기억장치01. 다양한 보조기억장치02. RAID의 정의와 종류 Ch08. 입출력 장치01. 장치 컨트롤러와 장치 드라이버02. 다양한 입출력 방법 Ch06. 메모리와 캐시 메모리6-1. RAM의 특징과 종류RAM의 특징RAM은 전원이 꺼지면 저장된 명령어와 데이터가 모두 날아간다. 이러한 특성을 가진 장치를 휘발성 저장 장치라고 한다. 이와 반대의 특성을 가진 장치는 비휘발성 저장 장치라고 한다.- 휘발성 저장 장치(volatile…

# data[].attributes.body
이런 저런 일에 설연휴까지 겹치는 바람에 대지각을 해버렸네요ㅜㅜ 다음주는 미리미리 꼼꼼히 할 수 있도록 반성하며... 남은 일정도 화이팅입니다! 새해 복 많이 받으세요!

# data[].attributes.attachment_link.title
[혼공학습단 13기] 혼자 공부하는 R 데이터.. : 네이버블로그

# data[].attributes.body
설 동안 열심히 했는데 모르는 용어가 많았고 이해하는 데도 시간이 예상보다 오래 걸렸던 것 같아요.

글도 3개로 쪼개졌습니다.. 이러다 4단원 가면 더 길어질까봐 걱정(?)이네요.

과제 포함된 링크 메인에 올리고 나머지 아래에 첨부했습니다.

https://blog.naver.com/ggujune96/223745706973

https://blog.naver.com/ggujune96/223745690178

다들 새해 복 많이 받으세요! 😊

+ 다른 분들 글보다 알았는데, 드래그 겐이 출시가 됐군요?!

# data[].attributes.body
후기가 왕창 늦어버려서 죄송할 따름입니다 ㅠ

# data[].attributes.attachment_link.title
혼공학습단 13기- 혼자 공부하는 C언어 3주차 공부후기 (5장~6장)

# data[].attributes.attachment_link.description
먼저 너무 늦어버린 공부 후기를 반성하며 공부기록을 시작해보려고 합니다. 2주차 작성 이후 저는 학원에…

# data[].attributes.headline
[혼공컴운]3주차_김지인

# data[].attributes.subject
[혼공컴운]3주차_김지인

# data[].attributes.body
설연휴를 즐기고 느즈막히 왔습니다.

너무 즐겨버려서 문제였지만 4주차까지 미룰순 없다는 의지로 정리했습니다.

어찌저찌 반 왔네요. 머리속에는 반의 반의 반정도 가져가는 것 같습니다. 역시 한번에 다 익힌다는 건 무리수 인걸로...ㅎ...

# data[].attributes.attachment_link.title
[혼공컴운] 3주차 - 메모리와 보조기억장치

# data[].attributes.attachment_link.description
※혼자 공부하는 컴퓨터구조 +운영체제 개인 공부 정리 내용입니다.※진도는 하단의 혼공단 13기 커리큘럼을 참고해 주세요. 진도저장 장치전원을 끄면 사라짐 = 휘발성 저장 장치 = RAM전원을 꺼도 유지 = 비휘발성 저장 장치 = 하드 디스크 / SSD / USB 등* CPU는 보조기억장치에 직접 전근하지 못해서 일반적으로 RAM에 ‘실행할 대상’을 저장하는 과정을 거쳐야한다. RAM의 종류DRAM (Dynamic RAM)SRAM (Static RAM)SDRAM (Synchronous Dynamic RAM)DDR SDRAM (Double Data Rate SDRAM) 가장 대중적인 메모리는 DDR4 SDRAM 이다. 주소물리주소 - 메모리 하드웨어 상의 주소논리주소 - CPU와 실행 중인 프로그램이…

# data[].attributes.body
이번에 내용이 많고 어려워서 이해하고 정리하는데 너무 오래걸렸습니다ㅠㅠ 설 연휴까지 봐주셔서 정말정말 감사드립니다... ㅠㅠㅠㅠ 다음엔 더 잘해야게따

# data[].attributes.attachment_link.description
혼공학습단 13기 필수 과제혼자 공부하는 네트워크 p.147Q1. IPv4의 대표적인 기능 두 가지를 골라 보세요.A.② IP 주소지정, ③ IP 단편화 IP의 대표적인 기능주소 지정(IP addressing)각 장치(컴퓨터, 스마트폰 등)에 고유한 IP 주소를 부여하고, 이 IP 주소를 이용해 누가(보내는 쪽) 누구에게(받는 쪽) 데이터를 전달할지를 결정하는 과정단편화(IP fragmentation)전송하고자 하는 패킷의 크기가 너무 클 때 여러 개의 패킷으로 쪼개서 보내는 것MTU(Maximun Transmission Unit) : 한 번에 전송 가능한 IP 패킷의 최대 크기나누어진 패킷은 수신지에 도착하면 다시 재조합일반적으로 1500byte ④번의 IP 주소 변환은 NAT에 관한 이야기!NAT(N…

# data[].attributes.body
3주차와 4주차중에 합법적지각(?) 주를 착각했습니다. 수식을 보자마자 머리가 아파지지만 잘 따라가 보겠습니다.

# data[].attributes.attachment_link.readable_text
Chapter 04. 다양한 분류 알고리즘 - 럭키백의 확률을 계산하라!

학습 목표

로지스틱 회귀, 확률적 경사 하강법과 같은 분류 알고리즘을 배웁니다.

이진 분류와 다중 분류의 차이를 이해하고 클래스별 확률을 예측합니다.

Ch.04(04-1) 2번 문제 풀고, 풀이 과정 설명하기

2. 로지스틱 회귀(logistic regression)가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?

정답 : 1. 시그모이드 함수 (Sigmoid Function)

풀이과정 : 로지스틱 회귀는 이진 분류에서 각 클래스에 속할 확률을 예측해야 합니다.

이를 위해 출력값이 반드시 0과 1 사이여야 하는데, 시그모이드 함수는 입력값 z에 대해 항상 0과 1 사이의 값을 반환합니다.

Ch.04(04-2) 과대적합/과소적합 손코딩 코랩 화면 캡처하기

혼공학습단으로 매주 진행하고 있는데 이번주 과제 자체는 쉬웠으나 전반적으로 배울 내용이 많아졌습니다.

1~4장을 다시한번 정리하고 가야겠습니다.

# data[].attributes.attachment_link.title
[혼공머신] 3주차_혼자 공부하는 머신러닝+딥러닝_Chap04

# data[].attributes.attachment_link.description
Chapter 04. 다양한 분류 알고리즘 - 럭키백의 확률을 계산하라!04-1 로지스틱 회귀04-2 확률적 경사 하강법학습 목표로지스틱 회귀, 확률적 경사 하강법과 같은 분류 알고리즘을 배웁니다.이진 분류와 다중 분류의 차이를 이해하고 클래스별 확률을 예측합니다.Ch.04(04-1) 2번 문제 풀고, 풀이 과정 설명하기2. 로지스틱 회귀(logistic regression)가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?정답 : 1.

# data[].attributes.body
새해들어 바쁜 일들이 생긴데다가 설 연휴들이 겹치면서 공부 진척도가 나빠졌습니다. 다음 주차부터는 제 속도를 낼 수 있을 듯합니다만.

# data[].attributes.body
공부할 분량이 많더라고요..ㅜㅜ 결국 다 못했지만 일단 업로드합니다ㅜㅜ

물론, 안 한 분량도 반드시 해낼겁니다...

# data[].attributes.attachment_link.description
개념정리 리스트
; 여러가지 자료를 저장할 수 있는 자료로, 대괄호[ ] 내부에 여러 종류의 자료(요소, element) 를 넣어 선언
요소가 존재하지 않는 위치에서 요소를 꺼낼 때 IndexError 발생 다양한 자료형으로 구성될 수 있음
특정 요소 단독 출력 및

# data[].attributes.body
3.9주차

# data[].attributes.body
설이 뭐라규...지각한 제 모습에 지못미..

늦었지만, 즐겁게 공부함으로 보람찼습니다 ^^

남은 일정도 알차고 즐겁게 공부하도록 노력할게요!!

족장님과 약속 !!

# data[].attributes.body
시간에 맞춰서 내려고 했는데 완전 지각이네요... 죄송합니다..ㅠㅠ

# data[].attributes.attachment_link.description
if문 제어문 -선택문: if, switch, ~case -반복문: while, for, do, ~while -분기문:break, continue, goto…

# data[].attributes.attachment_caption
기본숙제: [혼공자][week3] 기본숙제인 6장 혼공 용어 노트 정리

# data[].attributes.body
추가숙제: https://velog.io/@iddadda/혼공자week3-Day9

지각이 합법화 되니.. 나태해지네요 ㅜ_ㅜ 옆에서 누가 몽둥이를 들어야 전 공부를 하나봅니다.. 공부는 역시 흐름! 지금부터 슬슬 어렵고 헷갈리는 개념이 나오기 시작하는 것 같으니 다시 정신줄 잡고 레츠고할게요. 퀸 네버 크라이

그래도 정처기 공부 하면서 이해 안 되었던 내용을 확실히 알게 되어서 좋았습니다 ~.~

# data[].attributes.attachment_link.readable_text
6장 공부는 개념정리가 필수인듯 하다.
용어가 많이 나오고 비슷비슷 헷갈리는 용어들도 많다.

클래스의 구조

생성자(constructor)

new 연산자로 단 한 번만 호출됨
객체 생성 시 객체 초기화 하는 역할

접근 제한자(access modifier)

접근(클래스, 인터페이스 등)을 제한하기 위해 사용됨.
생성자 호출, 필드/메소드 사용을 막기도 함

아래 세 종류의 접근 제한자가 아니면 default 접근제한 을 가짐

public 접근제한자: 외부 클래스가 사용하도록 함(라이브러리 클래스의 경우 반드시 해당 제한자 사용)

protected 접근제한자: 같은 패키지/자식 클래스에서 사용 가능캐함

private 접근제한자: 외부 사용을 제한함

default 접근제한: 같은 패키지에 소속된 클래스에서만 사용 가능(다른 패키지 x)

오버로딩

클래스 내 가은 이름의 메소드를 여러개 선언하는 것.
사전적 의미 -> 많이 싣는 것

메소드 오버로딩: 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것. (매개 변수의 타입, 개수, 순서가 같으면 안 됨)

생성자 오버로딩: 매개 변수를 다르게 해서 여러개의 생성자 선언하는 것.

인스턴스 멤버
인스턴스: 클래스로부터 만들어진 객체
객체(인스턴스) 생성 후 사용할 수 있는 필드와 메소드
-> 객체 없이 사용 불가능

this

인스턴스 멤버에 접근하기 위해 사용.
생성자와 메소드의 매개 변수 이름이 필드와 동일한 경우에 사용.

# data[].attributes.attachment_link.title
[혼공자][week3] 기본숙제인 6장 혼공 용어 노트 정리

# data[].attributes.attachment_link.description
6장 공부는 개념정리가 필수인듯 하다.용어가 많이 나오고 비슷비슷 헷갈리는 용어들도 많다.업로드중..new 연산자로 단 한 번만 호출됨객체 생성 시 객체 초기화 하는 역할접근(클래스, 인터페이스 등)을 제한하기 위해 사용됨. 생성자 호출, 필드/메소드 사용을 막기도 함

# data[].attributes.body
지각쟁이 입장~!

양이 방대해져서 그 양에 눌려버릴뻔 했읍니다

조건문/반복문 관련한 건 C언어때도 했어서 제외하고 ..제출합니다. 내 연휴가 끝이라니

# data[].attributes.body
늦었지만 설 연휴 찬스로 계속해서 3주차 게시글 업로드합니다. 새해복많이 받으세요 !

# data[].attributes.attachment_link.title
[혼공네트, 혼자 공부하는 네트워크] 3 챕터

# data[].attributes.attachment_link.description
03 네트워크 계층03 -1 , LAN을 넘어서는 네트워크 계층▶ 17강”>03-1 LAN을 넘어서는 네트워크 계층네트워크 계층의 기능 1. 네트워크 계층이란?네트워크 계층(3계층, Layer 3): **랜(Local Area Network, LAN)**을 넘어서 다른 네트워크와 통신하기 위한 계층이전까지 배운 **물리 계층(1계층), 데이터 링크 계층(2계층)**은 같은 네트워크(LAN) 내 통신을 위한 기술✅ 네트워크 계층의 역할:IP 주소 할당 → 송신지 및 수신지 식별라우팅(Routing) → 최적의 경로 결정2. 네트워크 계층이 필요한 이유랜(LAN) 내부에서는 스위치, MAC 주소만으로 패킷을 주고받을 수 있음다른 네트워크(인터넷)와 통신하려면 MAC 주소만으로는 부족함 → 네트워크 계층 필요…

# data[].attributes.body
설 연휴가 덕분에 다음 주부터는 진도 맞출 수 있게 되었네요. ^^

시간이 정말 빨리 지나가네요. 설연휴가 벌써 끝나다니~ㅜㅜ

# data[].attributes.attachment_link.title
혼공머신(혼자 공부하는 머신러닝+딥러닝)_3주.. : 네이버블로그

# data[].attributes.headline
[혼공컴운]3주차_안*현

# data[].attributes.subject
[혼공컴운]3주차_안*현

# data[].attributes.body
너무 늦은 것 같지만 연휴라는 핑계로 늦게 올리겠습니다...ㅎㅎㅎ 설 연휴 지나고 부족했던 부분 보충하겠습니다. 모두들 새해 복 많이 받으세요!!

# data[].attributes.attachment_link.title
[혼공컴운] Ch 6 메모리와 캐시 메모리

# data[].attributes.attachment_link.description
Chapter 6메모리와 캐시 메모리6-1. RAM의 특징과 종류RAM의 특징RAM에는 실행한 프로그램의 명령어와 데이터가 저장된다. 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아가는데 이런 저장 장치를 휘발성 저장 장치라고 한다. 이와 반대로 전원이 꺼져도 저장된 내용이 유지되는 보조기억장치는 비휘발성 저장 장치라고 한다. 보조기억장치는 전원을 꺼도 내용을 유지하지만 CPU는 보조기억장치에 직접 접근하지 못한다. 그래서 보조기억장치에는 ‘보관할 대상‘을 저장하고, 휘발성 저장 장치인 RAM에는 ‘실행할 대상’을 저장한다. RAM의 용량과 성능CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야하는데 RAM의 용량이 적다면 보조기억장치에서 실행할 프로그램을 가져오는…

# data[].attributes.body
가장 프로그래밍과 거리가 있다고 생각 했지만, 가장 HW 엔지니어가 프로그래밍을 이해하기 위한 책인거 같습니다. 보충 문제는 나중에 5주차때 몰아서 할꺼 같아요~~ 설때문에 여유있게 공부 했습니다.

# data[].attributes.body
암튼 족장님이 합법적으로 지각가능하다고 했으니까~

새해 복 많이 받으시고 올해도 하고자하는 모든 일 다 이루셨으면 좋겠습니다!🤓

# data[].attributes.attachment_link.title
[혼공S][혼공학습단 13기]3주차 데이터 형식 : 네이버 블로그

# data[].attributes.body
블로그 링크

3주차 04-1 로지스틱 회귀

3주차 04-2 확률적 경사 하강법

3주차는 조금 지각을 해도 된다고 하시길래 조금? 많아? 지각을 해보았습니다. 사소한 일탈은 참을 수 없죠...

지난주랑 이번주는 학부연구생 컨택도 하고 교수님 면담도 하면서 휴일이 있었지만 생각보다 바빴던것 같네요. 교수님께서 Pytorch를 공부해오라고 하셨으나 엄두가 나질 않습니다;;; 원래 휴학하고 부트캠프나 해야하나 생각을 했는데 교수님과 석사 선배님의 대학원 영업에 학부연구생 지원으로 올해 계획이 바뀌어 버렸답니다. 저는 말하는 감자인데 교수님 연구실에서 살아남을 수 있을지 모르겠네요...

지난번에 대학원생 같다고 하셨는데 아쉽게도 아직 고졸 예비 노예랍니다 ㅠㅠ 차근차근 훌륭한 교수님의 노예가 되기 위해 노력하고 있습니다.

아, 그리고 패들렛 계정 로그인을 안 하면 게시글 수정이 안 되더라구요. 그래서 계정은 안 지웠습니다. ㅎㅎ

# data[].attributes.attachment_link.readable_text
본 게시글은 한빛미디어의 혼자 공부하는 머신러닝+딥러닝을 바탕으로 작성되었습니다.

이번에 글을 작성하려고 했는데, 너무 귀찮았다. 아직 3번이 더 남았는데 벌써 귀찮으면 어떡하지라는 생각이 들었지만 어쩔 수 없었다. 그래서 미루고 미루다가 마지막날에 완성을 하게 될 것 같다. 하지만 그동안 다른 여러 가지를 시도해 보았다.

먼저, 수식을 작성할 때, $\overset{\text{def}}{=}$와 같이 등호 위에 문자로 표기를 하는 것을 자주 사용하는 편인데, 이것을 어떻게 작성해야 하는지를 몰라서 못 쓰고 있었다. 그런데 찾아보니 있어서 다시 다 바꿔야 할 것 같다. 그리고, 수식에 번호를 넣는 것도 이제 규칙을 찾아서 이전에 작성했던 글들도 다시 정리를 해야 할 것 같다. 마지막으로, MathJax 렌더링이 PC에서는 잘 되는 편이었으나, 모바일에서는 깨지는 경우가 있었다. 하지만 이것도 결국 해결해 버렸다. 물론 아직 수식 비율이 마음에 안 드는 곳이 있기는 하지만, 그건 나중에 해결하기로 하고 일단은 글부터 작성하기로 했다.

그러고 보니 이번 우수 혼공족에는 선정되지 못한 것 같다. 이번엔 와플을 줘서 받고 싶다는 생각을 하긴 했지만 어쩔 수 없다. 사실 받을 것이라고 많이 기대를 하긴 했는데, 동일한 사람에게만 계속 주게 되면 다른 사람들의 의욕이 떨어질 수도 있기에 나눠서 주는 것이라고 생각하기로 했다. 나라도 받는 사람만 받으면 하고 싶은 의욕이 떨어질 것 같긴 하다. 아무튼 이제 3주차를 시작해 보자.

지금까지 classification 중에서 우리는 KNN classification을 살펴보았다. 그런데 잘 생각해 보면 도미와 빙어, 둘 중 하나로 classification을 했었다. 둘 중 하나로 classify 하는 것은 쉬울 것 같은데 만약 class가 두 개보다 많으면 어떻게 될까? 그리고, 각 class에 배정될 확률을 구하려면 어떻게 해야 할까?

만약 3개의 class가 있고, $K=6$으로 가정했을 때 sample point가 어디에 속할지 그래프를 그려서 생각해 보자. 아래 그래프를 보면, 파란색 사각형이 3개, 붉은색 원 2개, 초록색 삼각형이 1개로, 일단 sample point가 파란색 사각형의 class에 classify 된다는 것을 알 수 있다. 그런데 확률은 어떻게 구할까? 각 class에 속하는 point들의 비율로 구할 수 있지 않을까?

아까 파란색 사각형이 3개, 붉은색 원 2개, 초록색 삼각형이 1개로, 전체 class의 포인트는 총 $n=6$이다. 이때 각각 비율은 $\frac{3}{6}=0.5$, $\frac{2}{6}\approx0.3$, $\frac{1}{6}\approx0.2$이다. 따라서 우리는 이것을 통해 sample point가 파란색 사각형 class에 속할 확률이 50%, 붉은색 원 class에 속할 확률이 30%, 초록색 삼각형 class에 속할 확률이 20%일 것이라고 생각할 수 있다.

이러한 방식으로 한빛미디어가 우리에게 준 물고기 럭키백의 확률을 구해보도록 하자. 어떤 곳인지는 모르겠지만 마케팅팀과 그것을 수락한 운영진의 생각이 비범하다고 생각되는 한 회사가 있다. 그 멋진 회사는 사은품으로 생선으로 주겠다는 원대한 계획을 세우고 있고, 그 사은품의 생선을 랜덤으로 고객에게 주겠다는 더 멋진 생각을 하고 있다. 부디 이 회사가 수산물 업체이기를 바라며, 이 회사의 고민을 들어보도록 하자. 이 회사는 사은품으로 생선을 주는데, 그래도 아무런 정보 없이 고객에게 주기는 좀 그러니 생선의 확률을 구해서 알려주고, 사은품을 선택하도록 하기로 했다. 그런데, 생선의 확률을 어떻게 구할지 고민인 것이다.

그래서 우리는 방금 배운 KNN 알고리즘을 통해 확률을 구해보기로 했다. 원래라면 데이터를 게시글에 썼겠지만, 인터넷에서 데이터를 가지고 올 수도 있다는 것을 보여주기 위해 이번 한 번만 인터넷 링크를 통해 데이터를 불러오기로 하자.

아까 물고기 종류가 여러 가지가 있다고 했는데, 어떤 물고기가 있는지 확인해 보자. 총 7가지의 물고기가 있는 것을 확인하였다. 참고로 여기서 Roach는 바퀴벌레가 아닌 로치라는 물고기이다. 아무리 물고기를 랜덤으로 사은품으로 주겠다는 생각을 하는 회사라도, 사은품으로 바퀴벌레를 주지는 않으니 안심해도 된다.

array(['Bream', 'Roach', 'Whitefish', 'Parkki', 'Perch', 'Pike', 'Smelt'], dtype=object)

이제 늘 하던 대로 input data와 output data를 나눠줄 시간이다. 이 정도는 이제 따로 말하지 않아도 할 것이라고 믿는다. 그리고 당연히 train data와 test data로도 나눠준다.

그리고 이미 알고 있듯이, KNN 알고리즘은 distance, 즉 scale에 영향을 받기에, standardize를 해준다.

그리고 KNN 알고리즘을 통해 학습시킨 후, 점수를 확인해 보자. 적당한 점수가 나왔다. Test score가 training score보다 지나치게 낮지도 않고, 높지도 않다.

0.8907563025210085 0.875

그런데, 이때 궁금한 것이 하나 생긴다. 이전에 KNN classification에서 classify를 할 때, 0 또는 1로 output data가 만들어졌었다. 그럼, 이번과 같은 multiclass classification에서는 어떻게 output data가 나올까?

우리가 방금 만든 data에서 알 수 있듯이 KNN multiclass classification에선 매우 편리하게 output data로 각 class가 출력이 된다. Test data 중 처음 5개의 data에 대해서 어떻게 예측을 했는지 살펴보자.

array(['Perch', 'Smelt', 'Pike', 'Perch', 'Perch'], dtype=object)

이제 확률을 어떻게 구했는지도 살펴보도록 하자. 그런데, 이때 어떤 class에 대한 확률인지는 알려주지 않는다. 그럼 아까 우리가 입력했던 것과 동일하지 않을까라고 생각할 수 있으나, 그렇지 않다. 굳이 랜덤으로 섞어버린다. 따라서 우리는 어떤 class에 대한 것인지도 확인을 해줘야 한다.

array([[0. , 0. , 1. , 0. , 0. , 0. , 0. ], [0. , 0. , 0.33333333, 0. , 0. , 0.66666667, 0. ], [0. , 0. , 0. , 1. , 0. , 0. , 0. ], [0. , 0. , 0.66666667, 0. , 0.33333333, 0. , 0. ], [0. , 0. , 0.66666667, 0. , 0.33333333, 0. , 0. ]])

array(['Bream', 'Parkki', 'Perch', 'Pike', 'Roach', 'Smelt', 'Whitefish'],dtype=object)

여기서 우리는 한 가지 잘 생각해야 할 것이 있다. 우리는 KNN 알고리즘에서 $K=3$을 사용했기에 우리가 볼 수 있는 확률은 $0$, $\frac{1}{3}$, $\frac{2}{3}$, 1밖에 없다. 이렇게 성의 없게 적어놓는다면 확률형 아이템 확률 조작으로 뉴스에 나올 수도 있을 것이다. 조금 더 정확하게 확률을 구하기 위해서는 어떻게 해야 할까?

우리는 이전에 선형회귀에 대해서 배운 적이 있다. 그것을 바탕으로 이번 data의 linear model을 만들면 아래와 같이 만들 수 있을 것이다. 그런데, 여기서 한 가지 이상한 점이 있다. 바로 error $\varepsilon$이 보이지 않는다. 우리는 최종적으로 $z$를 예측하는 것이 목표가 아니라, sigmoid 함수를 통해 1이 될 확률을 구하는 것이므로 필요하지 않는 것이다.

\[z=\beta_0+\beta_1x_1+\beta_2x_2+\beta_3x_3+\beta_4x_4+\beta_5x_5 \tag{1}\]

시그모이드 함수(Sigmoid Function)는 다음과 같이 정의된다. 이 함수를 사용하면, input data가 무엇이든 output data의 범위를 0에서 1 사이로 제한할 수 있으며, 그 그래프는 아래와 같다. 따라서 방금 만든 $z$ 값을 이 sigmoid function에 대입한다면, 결과 값은 항상 0과 1 사이에 존재하게 된다.

\[\phi\overset{\text{def}}{=}\frac{1}{1+e^{-z}} \tag{2}\]

그런데 이걸 가지고 뭘 어떻게 해야 할까? 간단한 예시로 이진 분류를 해보기로 하자. 아까 살펴본 데이터 중 도미와 빙어의 데이터만 빼내어 사용해 볼 것이다. 우선, 인덱스를 활용하여 도미와 빙어의 데이터만 빼내어 보자.

이후, logistic regressor 모델을 만들고, 학습한 후 예측해 보자.

그리고 아까 KNN 알고리즘에서 했던 것과 같이 처음 5개의 sample을 선택하여 예측하고, 그 확률을 구해보자.

이때, 아까 언급했듯이 class는 랜덤하게 배정되기에 어떤 class에 대한 확률인지 알기 위해서는 class를 따로 확인해 줘야 한다.

array(['Bream', 'Smelt'], dtype=object)

따라서 우리는 2개의 class가 있을 때 각 sample point에 대한 확률을 얻을 수 있었다. 그럼, 어떤 회귀식을 기반으로 학습을 했는지 확인해 보자. 그러기 위해서는 절편과 계수가 필요하다. 출력해 보자.

[-2.16172774] [[-0.40451732 -0.57582787 -0.66248158 -1.01329614 -0.73123131]]

이제 (1)에서 봤던 것을 바탕으로 우리는 다음과 같은 회귀식을 만들 수 있다. Simple linear regression model과 비슷한 모습임을 알 수 있다. 이때 $x_1$: Weight, $x_2$: Length, $x_3$: Diagonal, $x_4$: Height, $x_5$: Width이다.

\[z\approx -2.16-0.4x_1-0.58x_2-0.66x_3-x_4-0.73x_5 \tag{3}\]

그리고 회귀식이 있으면, 이것을 sigmoid function에 대입하여 그 범위를 0부터 1 사이로 바꿔줘야 한다. np.exp()로 직접 계산을 할 수는 있으나, 이미 sigmoid function이 정의가 되어 있으므로, 그것을 사용해 줄 것이다. 먼저, 각 sample point에 대한 $z$ 값을 구한 후, sigmoid function에 대입해 보자.

array([-6.02991358, 3.57043428, -5.26630496, -4.24382314, -6.06135688])

array([0.00239993, 0.97262675, 0.00513614, 0.01414953, 0.00232581])

따라서 Bream은 0에 가까울 경우, Smelt는 1에 가까울 경우로 classify 됨을 알 수 있다. 이렇게 보면 logistic regression도 간단해 보인다. 그럼 multiclass classification은 어떻게 해야 할까?

이번엔 방금 썼던 코드를 바탕으로 multiclass classification을 진행해 보자.

0.9327731092436975 0.925

그리고 처음 5개의 sample point의 output을 예측하고, 확률을 구해보자.

lr.predict(X_test_scaled[:5])

array([[0. , 0.013, 0.803, 0. , 0.176, 0.003, 0.004], [0. , 0.021, 0.148, 0. , 0.055, 0.776, 0. ], [0. , 0. , 0.049, 0.919, 0.022, 0.01 , 0. ], [0.005, 0.012, 0.4 , 0.007, 0.516, 0. , 0.061], [0. , 0. , 0.88 , 0.002, 0.114, 0.001, 0.002]])

array(['Bream', 'Parkki', 'Perch', 'Pike', 'Roach', 'Smelt', 'Whitefish'], dtype=object)

아까 했던 binary classification과 마찬가지로 각 class에 대한 확률이 나오는 것을 확인할 수 있다. 이번에도 linear function의 모습은 어떤지 coefficient와 intercept를 구해서 확인해 보자. 그런데, 이번에는 식으로 하나하나 다 쓰기엔 조금 많이 귀찮을 것이다. 각 class마다 $z$값을 계산해 가장 높은 $z$값을 출력하는 class를 최종 class로 선택하기 때문에 우리는 지금 5개의 sample point가 있고, class는 7개가 있기에 총 35개의 $z$값을 구해야 한다. 이런 건 컴퓨터가 알아서 풀게 맡기는 것이 정신건강에 좋을 것이다.

그런데 또 한 가지 의문이 드는 것이 있을 것이다. 물론 없을 수도 있다. 이전의 binary classification에서는 sample point마다 sigmoid function으로 0과 1 사이로 범위를 조절한 1개의 확률이 출력되었다. 그래서 1에 가까운 경우와 0에 가까운 경우를 가지고 분류를 했었는데, 이번에는 어떻게 해야 할까?

아까 나온 확률을 보면, 특징이 있음을 알 수 있다. 우선, 모두 0부터 1 사이의 값이라고 할 수 있을 것이다. 그리고 하나 더 특징이 있는데, 그것은 모두 다 더하면 1이 된다는 것이다. 즉, 간단히 생각해서 7개의 class에 대하여 선택될 확률을 그냥 나타낸 것이다.

그런데 $z$값을 어떻게 이렇게 변환할 수 있을까? 그것은 소프트맥스 함수(Softmax Function)를 사용하면 된다. Softmax function은 아래와 같이 정의할 수 있다. 아마 이 식도 보자마자 거부감이 드는 사람이 있으리라고 생각이 된다. 그런데, 이것도 생각보다 그렇게 어렵지는 않다.

\[g(x_i)\overset{\text{def}}{=}\frac{\exp(x_i)}{\sum^n_{j=1}\exp(x_j)}=\frac{e^{x_i}}{\sum^n_{j=1}e^{x_j}} \tag{4}\]

먼저, 7개의 class가 있고 각 class 별로 $z$ 값이 존재할 것이다. 그 $z$ 값들을 $z_1, z_2, \cdots, z_7$로 작성하고, 이 $z$를 (4)의 식에 넣어보자.

\[g(z_i)=\frac{e^{z_i}}{\sum^7_{j=1}e^{z_j}} \tag{5}\] \[g(z_1)=\frac{e^{z_1}}{\sum^7_{j=1}e^{z_j}}, g(z_2)=\frac{e^{z_1}}{\sum^7_{j=2}e^{z_j}}, \cdots, g(z_7)=\frac{e^{z_7}}{\sum^7_{j=1}e^{z_j}} \tag{6}\]

이제 이렇게 구한 값들이 모두 더하면 1이 되는지 확인해 보자. 아래와 같은 식 (7)이 성립하면 될 것이다.

\[g(z_1)+g(z_2)+g(z_3)+g(z_4)+g(z_5)+g(z_6)+g(z_7)=1 \tag{7}\]

(7)을 (6)을 통해서 다 더하면 아래와 같으며,

\[\frac{e^{z_1}+e^{z_2}+e^{z_3}+e^{z_4}+e^{z_5}+e^{z_6}+e^{z_7}}{\sum^7_{j=1}e^{z_j}} \tag{8}\] \[\sum^7_{j=1}e^{z_j}=e^{z_1}+e^{z_2}+e^{z_3}+e^{z_4}+e^{z_5}+e^{z_6}+e^{z_7} \tag{9}\]

(9)에 의해 모든 값을 더하면 1이 됨을 알 수 있다. 지금은 여기까지만 살펴보도록 하자. 어차피 나중에 인공신경망에 대해서 다룰 때 또다시 나올 것이다. 그때는 아래의 logistic regression 모형과 같은 이쁜 사진도 넣어서 설명을 해보도록 하겠다. 물론 귀찮지 않다면...

이제 식을 봤으니 binary classification에서 했던 것처럼 softmax function을 사용해서 확률을 구하는 코드도 작성해 보고, 확률을 살펴보자.

array([[-6.06763713, 0.96401561, 5.09039917, -2.9583443 , 3.57436605, -0.45286248, -0.14993692], [-9.65191575, 2.37908821, 4.33718972, -3.1567666 , 3.33853005, 5.99142119, -3.23754682], [-4.05773456, -6.27318934, 3.30845746, 6.23347698, 2.48567971, 1.74074581, -3.43743606], [-1.22123794, -0.30189847, 3.19426244, -0.91151159, 3.44834736, -5.51866484, 1.31070304], [-5.95427652, -1.98337964, 5.69935601, -0.32818047, 3.65659259, -0.77931945, -0.31079253]])

array([[0. , 0.013, 0.803, 0. , 0.176, 0.003, 0.004], [0. , 0.021, 0.148, 0. , 0.055, 0.776, 0. ], [0. , 0. , 0.049, 0.919, 0.022, 0.01 , 0. ], [0.005, 0.012, 0.4 , 0.007, 0.516, 0. , 0.061], [0. , 0. , 0.88 , 0.002, 0.114, 0.001, 0.002]])

이번에도 숙제가 있다. 숙제는 하라고 있는 것이기에 하기로 하자. 물론, 2번만 숙제이지만 1번부터 3번까지 다 할 것이다.

2개보다 많은 클래스가 있는 분류 문제를 무엇이라 부르나요? 답: ②
우선, binary classification은 class가 2개인 경우의 classification을 말하는 것이다. 그리고 정답인 multiclass classification이 2개보다 많은 class가 있는 경우의 classification을 의미하는 것이다. 그리고 단변량 회귀(Univerate Regression)는 independent variable이 1개인 regression을 말하고, 다변량 회귀(Multivariate Regression)은 independent variable이 여러 개인 regression을 의미한다.

로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?
답: ①
우리가 아까 이미 살펴본 것에 따르면, logistic regression에서 binary classification을 위해서는 sigmoid를, multiclass classification에서는 softmax를 사용한다고 말했던 것을 기억할 것이다. 이건 이전 게시글도 아니고 방금 본 것이다. 따라서 우리는 sigmoid가 정답이라는 것을 쉽게 알 수 있을 것이다.

decision_function() 메서드의 출력이 0일 때 시그모이드 함수의 값은 얼마인가요?
답: ③

(2)의 sigmoid funciton을 다시 한번 살펴보자. 만약 decision_funciton() 메서드의 출력이 0이라면, $z$가 0이 나왔다는 의미이다. 이때, 이 $z$를 아래의 함수에 대입하면,

\[\phi\overset{\text{def}}{=}\frac{1}{1+e^{-z}} \tag{10}\] \[\frac{1}{1+e^{-0}}=\frac{1}{1+1}=0.5 \tag{11}\]

어떤 수를 0 제곱한다면 1이 되는 것은 모두 알 것이기에 0.5가 나옴을 알 수 있다.

# data[].attributes.attachment_link.title
[혼공머신] 3주차 04-1 로지스틱 회귀

# data[].attributes.attachment_link.description
본 게시글은 한빛미디어의 혼자 공부하는 머신러닝+딥러닝을 바탕으로 작성되었습니다.

# data[].attributes.body
https://sage-science-519.notion.site/Chapter4-1-3276abf00e0146da9d71b757eb9da22b?pvs=4 이번주일요일 제출이 아니였군요.. 특히나 어려운내용이였습니다ㅠ

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
연휴있다고 느긋하게 하다 너무 늦게 제출해버렸다.. 그래도 다음 학기 들을 수업인 컴퓨터 구조를 다 끝내놓으니, 괜스레 뿌듯하다! 다음 주에는 더욱 열심히 해봐야겠다!!

# data[].attributes.attachment_link.description
Chapter06. 메모리와 캐시 메모리06-1 RAM의 특징과 종류이번 절에서는 우리가 ‘메모리’라는 용어로 지칭했던 저장 장치인 RAM을 조금 더 자세히 알아보겠다. RAM 용량이 컴퓨터 성능에 어던 영향을 미치는지, 그리고 DRAM, SRAM, SDRAM, DDR SDRAM은 무엇이고 어떤 특징을 가지는지 가볍게 살펴보겠다.RAM의 특징RAM과 같이 전원을 끄면 저장된 내용이 사라지는 저장장치를 휘발성 저장장치라 부른다. 반면, 전원이 꺼져도 저장된 내용이 유지되는 저장장치를 비휘발성 저장 장치라 부른다. 보조기억 장치들이 비휘발성 저장 장치에 해당한다.보조기억 장치들은 전원을 꺼도 내용을 유지하지만, CPU는 보조기억장치에 접근할 수없다. 그렇기에 보조기억 장치인 비휘발성 장치에는 ‘보관할 대상’…

# data[].attributes.body
합법적 지각입니다 하핫.. 본격적으로 SQL문법을 직접 손코딩해보면서 공부하니까 이해가 쏙쏙 되고 좋아요!! 새해 복 많이 받으시고 행복한 설 연휴 보내세용~!😊

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
결국 지각해버렸슴미다. 배열과 반복문을 여러 언어로 배웠지만 혼자서 공부하다보니 다양한 생각이 떠올라서 그런 것도 넣어보았습니다. 새해 복 많이 받으시길 바라겠습니다:)

# data[].attributes.attachment_link.description
안녕하새우🍤 벌써 혼공학습단 3주차라니,, 시간이 참 빠른 것 같아요. 2025년의 첫 달도 정신없이 지나가고 있어요. 요즘은 하루하루 흘러가는 게 너무 아까워요. 할 일하고 이제 좀 놀아볼까,,,? 하면 잘 시간이라닝 조금 더 효율적으로 살아야 될 것 같아용.
다들

# data[].attributes.body
새해 복 많이 받으세요!

# data[].attributes.attachment_link.description
* 이 글은 출판사 ‘한빛미디어‘의 ‘혼공학습단 13기’ 활동을 진행하며 작성되었습니다. 배열 혹은 특정 객체에 대한 작업을 할 때, 그 값을 직접적으로 변경하는지 여부에 따라 비파괴적 vs 파괴적 처리로 구분합니다. 1. 비파괴적 처리 (Non-Mutating Methods)원본 데이터를 변경하지 않고 새로운 데이터(배열, 객체 등)를 반환하는 방식기존 데이터를 유지하면서 새로운 값을 얻을 수 있어 불변성(immutability)을 유지하는 프로그래밍 방식에 적합예제const numbers = [1, 2, 3, 4, 5]; // map(): 원본 배열을 변경하지 않고 새로운 배열 반환const doubled = numbers.map(num => num * 2);console.log(doubled);…

# data[].attributes.body
연휴때문에 업로드가 늦었는데 저만 그런게 아닌거 같아서 조금 다행이라고 생각하지만.. 다음엔 늦지 않겠습니다. 다들 새해 복 많이 받으세요!

# data[].attributes.attachment_link.title
[혼공파] 3주차_비파괴적 처리와 파괴적 처리

# data[].attributes.attachment_link.description
이 카테고리는 한빛미디어의 혼자 공부하는 자바스크립트 교재를 학습하는 내용을 정리하는 공간입니다. 📌 비파괴적 처리 vs. 파괴적 처리 정리 1️⃣ 비파괴적 처리 (Non-Mutative Processing)기존 데이터를 변경하지 않고 새로운 데이터를 생성하는 방식map(), filter(), slice(), concat() 등의 메서드가 대표적함수형 프로그래밍에서 선호됨데이터 불변성(Immutability)을 유지할 수 있음✅ 예제: 비파괴적 처리let arr = [1, 2, 3];// 기존 배열을 유지한 채 새로운 배열 생성let newArr = arr.map(x => x * 2);console.log(arr); // [1, 2, 3] (원본 유지)console.log(newArr);…

# data[].attributes.body
연휴 때문에 업로드가 늦었는데 저만 그런게 아닌거 같아서 약간 안심..이지만 다음엔 늦지 않도록 하겠습니다. 다들 새해 복 많이 받으세요!

# data[].attributes.attachment_link.title
[혼공파] 3주차_비파괴적 처리와 파괴적 처리

# data[].attributes.attachment_link.description
이 카테고리는 한빛미디어의 혼자 공부하는 자바스크립트 교재를 학습하는 내용을 정리하는 공간입니다. 📌 비파괴적 처리 vs. 파괴적 처리 정리 1️⃣ 비파괴적 처리 (Non-Mutative Processing)기존 데이터를 변경하지 않고 새로운 데이터를 생성하는 방식map(), filter(), slice(), concat() 등의 메서드가 대표적함수형 프로그래밍에서 선호됨데이터 불변성(Immutability)을 유지할 수 있음✅ 예제: 비파괴적 처리let arr = [1, 2, 3];// 기존 배열을 유지한 채 새로운 배열 생성let newArr = arr.map(x => x * 2);console.log(arr); // [1, 2, 3] (원본 유지)console.log(newArr);…

# data[].attributes.body
I'm just a chill guy.. 다음부턴 지각 안하겠습니다... 근데 이번 주차부터 확실히 빡세진 것 같심더. 즐거운 설 연휴 되십쇼!

# data[].attributes.attachment_link.title
[혼공학습단 13기] 3주차 과제

# data[].attributes.attachment_link.description
chill chill 맞게 지각해버렸어... 3주차 과제
기본 과제: 리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 정리하기
추가 과제: p.213 1번 문제 답 쓰고 인증하기

# data[].attributes.body
추가 숙제

정답: 1

# data[].attributes.body
좀 늦었습니다 하하;;

연휴 잘 보내세요!!

# data[].attributes.attachment_link.readable_text
약간 늦은 3주차... 원래 26일까지인데 지금 올리는...ㅎㅎ;;

이번 주차의 기본 숙제는

"비파괴적 처리와 파괴적 처리의 이미와 장단점 설명하기" 입니다.

먼저 비파괴적 처리와 파괴적 처리의 의미에 대해 알아봅시다.

(여기부턴 ~다 로 적겠습니다.)

일반적으로 자바스크립트는 자료 처리를 위해 다양한 연산자, 함수, 메소드를 제공한다.

이를 크게 비파괴적 처리와 파괴적 처리로 구분할 수 있다.

비파괴적 처리는 처리 후에 원본 내용이 변경되지 않으며

파괴적 처리는 처리 후에 원본 내용이 변경된다.

이에 탄생 배경도 살펴보면 왜 이렇게 구분되었는지 알 수 있다.

과거엔 컴퓨터 메모리의 부족으로 인해 최대한 메모리 절약하는 방식으로 설계되었다.

그렇다보니 배열처럼 크기가 어느 정도인지 모르는 대상의 원본과 결과를 모두 메모리에 저장하는 것은 위험할 수 있었다.

이를 위해 메모리를 절약할 수 있도록 파괴적 처리를 통해 자료를 저장했다.

다만 컴퓨터 메모리의 기술로 인해 메모리가 여유로워진 현재는 자료 보호를 위해 대다수가 비파괴적 처리를 한다.

책을 보며 공부하며 느낀 거지만 어떤 처리가 비파괴적, 파괴적 인지를 구분하는 방법이 여러 번 실행하면서 익혀 외워야 하는 방법 뿐이라는 것에 좀 특이하다는 생각이 든다.

그렇다면 장단점에 대해 알아보자.

GPT의 도움을 받았다...ㅎㅎ;

먼저 파괴적 처리의 장단점

장점

1. 메모리 효율성

2. 처리 속도

3. 단순한 사용

단점

1. 원본 데이터 손실 위험

2. 디버깅 어려움

3. 재사용성 감소

비파괴적 처리의 장단점

장점

1. 원본 데이터 보존

2. 디버깅 용이성

3. 재사용성 증가

단점

1. 메모리 비효율성

2. 처리 속도 감소

3. 코드 복잡성 증가

끝으로 각각을 비교한 표를 올리면서 마칩니다.

# data[].attributes.attachment_link.title
[혼공스] 혼자 공부하는 자바스크립트 3주차 - 혼공학습단 13기

# data[].attributes.attachment_link.description
약간 늦은 3주차... 원래 26일까지인데 지금 올리는...ㅎㅎ;; 이번 주차의 기본 숙제는"비파괴적 처리와 파괴적 처리의 이미와 장단점 설명하기" 입니다. 먼저 비파괴적 처리와 파괴적 처리의 의미에 대해 알아봅시다. (여기부턴 ~다 로 적겠습니다.)일반적으로 자바스크립트는 자료 처리를 위해 다양한 연산자, 함수, 메소드를 제공한다.이를 크게 비파괴적 처리와 파괴적 처리로 구분할 수 있다.

# data[].attributes.body
이번 3주차 내용 되게 다채로웠는데 하나하나 정보를 얻어갈 때마다 재밌었습니다!!! 뭔가 지금까지는 공부를 하기 싫은 숙제하는 느낌으로 해왔었는데 공부의 즐거움을 느끼는 계기가 되었습니다!! 진짜 혼공학습단 하길 잘한 것 같다는 생각이들어요 :)

그리고 다들 새해 복 많이 받으새요!!!! 새해니까 맛난것도 많이 드시고 :>

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 마이스터고생의 흔한 일상

# data[].attributes.attachment_link.description
인사말 네 안녕하세요 혼공족장님 그리고 혼공학습단 여러분! 이번 일주일도 고생 많으셨습니다!! 블로그…

# data[].attributes.body
예전에 플젝 할 때 gcp를 써본 적이 있었는데 그때 만약 지금 배우는 컴퓨터구조를 알고 있었다면 어땠을까 싶네요.. 가상 컴퓨터의 이것저것을 설정할 때 모르는게 많아서 이것저것 찾아보느라 조금 애먹었었거든요.

컴퓨터구조의 큰 틀을 배우고나니까 그때 어떤 점이 부족했었는지 조금이나마 알게 된 거 같아 기쁩니다!!

운영체제 파트는 컴구 파트보다 만만치 않을 거 같은데 열심히 해보겠습니다. 새해 복 많이 받으세욥~~

# data[].attributes.attachment_link.description
1. 메모리
메모리의 크기에 따른 특성
메모리(=RAM)은 전원을 끄면 정보가 날아가는 휘발성 기억장치이고, 보조기억장치는 전원을 꺼도 정보가 남아있는 비휘발성 기억장치이다. 보조기억장치에서 프로그램을 가져올 때, 메모리 용량이 작다면 한 번에 많은 프로그램을 실행하는데에 어려움이 있다. 따라서 메모리의 용량이 크다면 그만큼 많은 프로그램을 동시에 실…

# data[].attributes.body
완벽한 정리본을 만들고 싶어 정리본 이미지에 욕심을 부렸더니 2주차에 규칙을 어겨버려서 부끄러웠습니다😥 책에 첨부된 이미지가 이해하기에 너무 찰떡이라 저도 모르게 마구 붙여넣어버렸나봐요. 3주차부터는 신경써서 정말 필요한 부분만 첨부했습니다.

3주차에 제일 기억에 남았던 파트는 캐시 메모리 파트의 캐시 적중률 부분이었습니다.

자료 구조 공부 중 배열과 리스트를 배울 때, 일반적으로 리스트가 삽입/삭제에 대해서는 배열보다 유리한데, 순차적으로 삽입과 삭제가 반복되는 경우에는 캐시 적중률 때문에 배열이 리스트보다 효율적이게 되는 경우가 있다고 들었었어요.

그때는 저 말이 이해가 잘 안 갔었는데 실제 캐시가 어떤 역할을 하는지 배우고, 하드 디스크가 물리적으로 어떻게 비슷한 기능의 데이터를 빠르게 읽을 수 있는지 공부하고 나니 이해가 갑니다.

즐거운 설 연휴 보내시고 새해 복 많이 받으세요!

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
제출합니다! 합법 지각 감사합니다.

# data[].attributes.attachment_link.title
[혼공파]3주차_리스트, 딕셔너리, 범위 자료형

# data[].attributes.attachment_link.description
- 3주차 미션:리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 포스팅하기 리스트: 인덱스를 기반으로 값을 저장하는 것- 개념: 여러 독립적인 자료를 모아서 사용할 수 있게 해주는 자료- 사용법: 대괄호[] 내부에 여러 종류의 자료를 넣어 선언. 선언한 리스트를 출력하면 내부의 자료를 모두 출력한다.가상의 리스트 list_a를 선언할 때,list_a[-1] #뒤에서부터 요소를 선택list_a[3][0] #접근 연산자를 이중으로 사용할 수 있음(3번째 자료의 0번째 자료 출력)list_a[1][1] #리스트 안에 리스트를 사용할 수도 있음*리스트 인덱스는 ‘0부터’ 세기 시작한다. 존재하지 않는 위치를 지정하면 IndexError가 발생하니 유의할 것. - 연산: 연결(+), 반복…

# data[].attributes.body
미리 써놓고 올리는 것을 깜빡했네여 ㅜㅜㅜ

# data[].attributes.attachment_link.title
[혼공머신 / 3주차] 다중 분류부터 확률적 경사 하강법까지, 로지스틱 회귀의 모든 것

# data[].attributes.attachment_link.description
머신러닝을 공부하다 보면 ‘이진 분류(0 또는 1)’ 말고도 다양한 클래스를 구별해야 하는 다중 분류 문제에 직면하게 됩니다. 이때 흔히 사용하는 모델 중 하나가 ‘이름만 회귀’일 뿐 사실상 분류 알고리즘에 속하는 로지스틱 회귀입니다. 이번 글에서는 로지스틱 회귀를 중심으로 다중 분류와 확률적 경사 하강법(SGD), 그리고 scikit-learn에서의 구현 방법 등을 정리해보겠습니다.1. 다중 분류(Multi-class Classification)일반적인 이진 분류 문제는 타깃 값이 0과 1(또는 -1과 1)로 이루어지지만, 다중 분류는 2개 이상의 클래스를 맞춰야 합니다. 예를 들어, MNIST 숫자 데이터(0~9)처럼 10개의 카테고리가 있는 경우 등입니다.2. 로지스틱 회귀(Logistic Regr…

# data[].attributes.body
계절학기가 끝나서 3주차는 매일매일 조금씩 공부했더니 부담이 덜해서 좋았습니다.ㅎㅎ 앞으로도 이렇게 하루에 조금씩 해볼 예정입니다.

꿀 아메리카노 잘 먹었습니다! 항상 아메리카노만 먹다가 꿀아메리카노 덜달게 해서 먹어봤는데 맛있었어요!! 다음에도 우수 혼공족에 뽑힌다면 버블티 조심스럽게 요청드립니닷

족장님께서 정성스럽게 코멘트 달아주셔서 더 열심히 하게 되는 것 같아요. 감사합니다!!

새해 복 많이 받으세요:)

# data[].attributes.body
https://blog.naver.com/jjk7202/223740304550

설연휴 편안한 시간 되시길 기원드리며, 새해 복 많이 받으시고 소원하는 바 모두 성취하시길 기원하겠습니다. 감사합니다.

# data[].attributes.body
지각자 두둥등장!

3주차는 논리와 물리의 늪..

논리..물리...논..물..눈물..🤦‍♀️

# data[].attributes.attachment_link.title
좋았던 일상을 기록하는 : 네이버 블로그

# data[].attributes.body
<설 연휴 있어서 합법적으로 지각 가능한 주.> 라는 문장을 보고 곧바로 합법적으로 지각 이행하였습니다. ㅎㅎ 대신에 내용을 알차게 채워봤어요. 토글을 활용해서 ▷를 눌러야 전체 내용을 보실 수 있습니다. 참고 부탁드립니다! 문제 풀이 인증 뒤에 족장님도 따라해봤어요ㅎㅎ

혼공단으로 참여하면서 SQL 공부를 꼼꼼히 할 수 있어서 행복합니다. 족장님 감사합니다!

새해 복 많이 받으세요 :)

# data[].attributes.body
설연휴에 늦은만큼 공부 열심히 해야겠습니다.

# data[].attributes.attachment_link.title
[혼자 공부하는 자바] 3주차

# data[].attributes.attachment_link.description
객체: 물리적으로 존재하거나 추상적으로 생각할수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별가능한것클래스: 자바의 설계도인스턴스 : 클래스로부터 만들어진 객체필드: 객체의 데이터가 저장되는곳생성자: 객체 생성시 초기화 역할 담당메소드: 객체의 동작에 해당하는 실행블록생성자: new 연산자 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당객체 초기화: 필드를 초기화 하거나 메소드를 호출해서 객체를 사용할 준비를 하는것필드 초기화 : ①필드를 선을할때 초기값을 주는 방식 , ②생성자에서 초기값을 주는 방법this.필드 this는 객체 자신의 참조, 객체가 객체 자신을 this라고 표현, this 참조 변수로 필드를 사용생성자 오버로딩: 매개 변수를 달리하는 생성자를 여러개 선언

# data[].attributes.body
이제 컴퓨터 구조 내용이 끝났습니다!! 앞으로 남은 주차도 잘 해보겠습니다. 설연휴 잘 보내세요!

# data[].attributes.attachment_link.title
혼자 공부하는 컴퓨터구조 운영체제 - 3주차

# data[].attributes.attachment_link.description
Chapter 6 메모리와 캐시 메모리chapter 06 - 1 RAM의 특징과 종류휘발성 저장 장치 : 전원을 끄면 저장된 명령어, 데이터 모두 날라감보통 RAM으로 부른다.비휘발성 저장 장치 : 전원이 꺼져도 저장된 내용이 유지된다.하드디스크, SSD, CD-ROM, USBRAM의 종류DRAM(Dynamic RAM) : 저장된 데이터가 동적으로 변하는 RAM일정한 주기로 재활성화를 해야 한다. -> 시간이 지나면 저장된 데이터가 점차 사라져서소비 전력이 낮고, 저렴하다, 집적도도 높다 -> 대용량 설계에 좋다.SRAM(Static RAM) : 저장된 데이터가 변하지 않는 RAM데이터를 주기적으로 재활성화할 필요가 없다.시간이 지나도 저장된 데이터가 안사라진다.DRAM보다 집적도가 낮고 소비전력 크고…

# data[].attributes.body
즐거운 설연휴 되세요. ^^

# data[].attributes.body
https://blog.naver.com/rlatjr1609/223737143136

남에게 보여주기위해 정리하려는 욕심보다는 나부터 이해하고, 기본 숙제에 충실하고 강의를 하루하루 나누어 들을려고합니다.

# data[].attributes.attachment_link.title
혼공네트 3주차 과제 : 네이버 블로그

# data[].attributes.body
아직 기본편인데 점점 어려워지는 것 같아요 ^-^;;

즐거운 설연휴 보내시고

새 해 복 많이 받으세요!!

# data[].attributes.attachment_link.description
사람들의 학습내용을 확인하고 정성스러운 댓글을 남겨시는 혼공족장님!! 작심3일, 의지박약의 사그라드는…

# data[].attributes.body
비번은 '혼공네트'!

족장님이 남겨주시는 댓글을 보며 매주 열심히 공부하고 있습니다. 한 달간의 해외 여행이 끝나 오늘 한국에 도착해서 후다닥 올렸네요. 연휴 동안 재정비하고 내용을 정리하여 다음 학기를 준비할 계획입니다! 모두 파이팅!

여담으로, 정보처리산업기사는 재학 중에도 취득할 수 있다고 하여, 나중에 기사 자격증을 따기 전에 네트워크 공부를 하며 이번 기회에 취득해보려고 합니다. 혼공 시리즈 덕분에 많은 도움이 되고 있어요! 사실 혼공 유튜브가 학교 수업보다 더 재미있어서 즐겁게 보고 있습니다. 머릿속에 남은 IT 기억들이 혼공 교재 내용밖에 없네요ㅋㅋ 한빛미디어 최고! 혼공시리즈 아녔음 처음부터 다시 공부했을 것 같아요 ㅁㅅㅁ

# data[].attributes.body
하하....지각...죄송합니다....!!!!!

새해 복 많이 받으세요!!!!!

이번.....꺼부터....정말 어렵네요....하ㅏㅎ....

# data[].attributes.attachment_link.readable_text
Ch4. SQL 고급문법

4.1 MySQL의 데이터 형식

(1) 숫자형 : 더하기/빼기 연산의 의미가 있거나 크다/작다 또는 순서의 의미가 있는 경우.

- 데이터 형식마다 숫자 범위가 정해져있는데 입력값의 범위를 벗어나면 오류가 남.
- UNSIGNED를 이용하면 범위를 0부터 시작되도록 할 수 있다. ex) 열이름 TINYINT UNSIGNED
- 즉, TINYINT의 경우, 0부터 255로 1byte로 256개를 표현할 수 있다.
- 주로 양수를 나타내야하는 키, 인원수 등에 이용한다.

(2) 문자형

💡 국번의 경우, 제일 앞의 0은 정수형에서 나타나지 않으므로 CHAR로 지정할 것!

(3) 날짜형

(4) 대량의 데이터 형식

- TEXT, LONGTEXT는 영화대본이나 소설같은 내용을 저장할 때 필요한 데이터 형식이며 LONGTEXT는 최대 4GB까지 입력가능.
- BLOB(Binary Long Object)는 이미지나 동영상등을 저장할 때 필요한 데이터 형식이며 LONGBLOB는 최대 4GB까지 가능.

ex1) myVAR1, myVAR2 변수를 선언하고 덧셈 결과 출력

USE market_db;
SET @myVAR1 = 5;
SET @myVAR2 = 4;
SELECT @myVAR1 + @myVAR2;

ex2) 166을 변수로 선언하고 166보다 키가 큰 가수 이름 출력

USE market_db;
SET @txt = '가수 이름==> ';
SET @height = 166;
SELECT @txt, mem_name FROM member where height > @height;

🚨 LIMIT 사용시에는 변수를 사용할 수 없어서 PREPARE와 EXECUTE 를 사용한다.

SET @count = 3;
PREPARE mySQL FROM 'SELECT mem_name, height FROM member ORDER BY height LIMIT ?';
EXECUTE mySQL USING @count;

PREPARE을 통해 SELECT ~~ LIMIT? 문을 준비해두고 EXECUTE를 통해 USING으로 ?에 @count변수에 값을 대입하여 실행됨!

(1) 함수를 이용한 명시적인 변환

CAST(값 AS 데이터형식 [ (길이) ])
CONVERT(값, 데이터형식 [ (길이) ])

ex1) 평균가격을 실수보다 정수로

SELECT CAST(AVG(price) AS SIGNED) '평균 가격' FROM buy;

여기서, SIGNED : 부호가 있는 정수, UNSIGNED : 부호가 없는 정수를 의미.

ex2) 다양한 구분자를 날짜형으로 변경

SELECT CAST('2022%12%12' AS DATE);

ex3) 결과를 가격X수량 = 으로 나타내고 싶은경우

SELECT num, CONCAT(CAST(price AS CHAR), 'X', CAST(amount AS CHAR), '=' ) '가격X수량', price*amount '구매액'
FROM buy;

여기서 CONCAT()은 문자를 이어주는 역할.

(2) 암시적인 변환 : CAST나 CONCAT을 사용하지 않고도 자연스럽게 형이 변환되는 것.

ex1) 문자는 더할 수 없으니까 자동으로 숫자로 변환해서 덧셈 수행.

SELECT '100' + '200';

ex2) CONCAT을 이용했으니까 문자그대로 이어짐.

SELECT CONCAT('100','200');

ex3) 숫자와 문자를 연산할 때 CONCAT을 이용하면 숫자가 문자로 변하고, 더하기만 사용하면 문자가 숫자로 변한 후에 연산됨.

SELECT CONCAT(100, '200');
SELECT 100 + '200';

4.2 두 테이블을 묶는 조인

조인 : 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어내는 것.
(1) 내부조인
- 일대다관계인 두 테이블을 조인
💡일대다관계(PK-FK관계)인 두 테이블?? : 한쪽 테이블에는 하나의 값만 존재해야하지만, 연결된 다른 테이블에는 여러개의 값이 존재할 수 있는 관계
ex1) 회원테이블에서, 아이디가 한 개의 값임. -> 기본키(PK)
구매테이블에서, 아이디는 여러번 출력됨. -> 외래키(FK)
ex2)1명의 회사원. 급여는 여러번 -> 회사원 테이블에서 이름이 기본키, 급여 테이블에서 이름이 외래키.
ex3) 1명의 학생. 학점은 여러개 -> 학생 테이블에서 이름이 기본키, 학점 테이블에서 이름이 외래키.
- 두 테이블에 모두 있는 내용만 조인됨.

🚨 필요한 열만 추출시에는 여러 테이블에 동일한 열이름이 존재할 수 있으므로 테이블이름.열이름 으로 표기할 것. 이때, 테이블 이름도 별칭(alias)을 통해 더 간결히 표현 가능.

🚨 WHERE 가 없으면 모든 행에 대해서 조인이 수행됨.

ex) 테이블 이름에 별칭을 사용해서 더 간결하게 표현.

SELECT B.mem_id, M.mem_name, B.prod_name, M.addr, CONCAT(M.phone1, M.phone2) '연락처'
FROM buy B
INNER JOIN member M
ON B.mem_id = M.mem_id;

구매 테이블을 기준으로, 구매테이블의 모든 행이 회원테이블과 결합.

ex) 한번이라도 구매기록이 있는 회원들 출력

💡 중복된 결과 1개만 출력하려면 DISTINCT문 활용.

(2) 외부조인 (이해가 잘안감...⭐⭐⭐)
필요한 내용이 한쪽 테이블에만 있어도 결과추출가능

여기서, LEFT(RIGHT) OUTER JOIN : 왼쪽(오른쪽) 테이블의 내용은 모두 출력. FULL OUTER JOIN : 왼쪽이든 오른쪽이든 한쪽에 있는 내용이면 출력.

ex) 전체 회원의 구매기록을 출력
1) 왼쪽에 있는 member테이블을 기준으로 외부조인

2) 오른쪽에 있는 member테이블을 기준으로 외부조인

🤔 오른쪽 왼쪽은 상관없고 기준이 어떤 테이블이냐가 중요한건가..? 근데 왜 둘이 다르지? 밑에는 buy가 기준이 되는게 아닌가....?

ex) 회원으로 가입만 하고, 한 번도 구매한 적이 없는 회원의 목록 = mem_id는 있지만 prod_name이 NULL인 경우

SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
WHERE B.prod_name IS NULL
ORDER BY M.mem_id;

(3) 기타조인

상호조인 : 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능. / 주로 테스트하기 위한 대용량 데이터 생성을 위함.
결과로 출력되는 행개수 = 두 테이블의 각 행의 개수를 곱한 개수.

🚨 조인의 조건인 ON은 사용불가.

ex) 대용량 테이블 만들기.

CREATE TABLE cross_table
SELECT
FROM skila.actor
CROSS JOIN world.country;
SELECT FROM cross_table LIMIT 5;

salika.actor는 200행, world.country는 239행으로 이루어져있어서 대용량 테이블이 만들어지고 5건을 조회함.

자체조인 : 자기 자신과 조인. 테이블을 1개 사용하므로 테이블에 서로 다른 별칭을 사용하여 서로 다른 것처럼 사용.

SELECT 조인할 열이름
FROM 테이블이름 별칭 A
INNER JOIN 테이블이름 별칭 B
ON 조인될 조건
WHERE 검색 조건

ex) 직원 중 직속상관의 연락처 알아내기

p.195 4번) 회원으로 가입만 하고, 한 번도 구매한 적이 없는 회원의 목록 빈칸에 들어갈 코드? ④

SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
WHERE B.prod_name is NULL
ORDER BY M.mem_id;

4.3 SQL 프로그래밍

스토어드 프로시저 : MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체

DELIMITER $$ #스토어드 프로시저 코딩 시작
CREATE PROCEDURE 스토어드 프로시저 이름()
BEGIN
#이부분에 SQL 코딩
END $$ #스토어드 프로시저 종료
DELIMITER ;
CALL 스토어드 프로시저 이름(); #해당 스토어드 프로시저 실행

(1) IF문
- 두 문장 이상 처리되어야 할 때에는 BEGIN~END 로

DROP PROCEDURE IF EXISTS ifProc1;
DELIMITER $$ #스토어드 프로시저 코딩 시작
CREATE PROCEDURE ifProc1() #ifProc1이 스토어드 프로시저 이름
BEGIN
IF 100 = 100 THEN
SELECT '100은 100과 같습니다.';
END IF;
END $$
DELIMITER;
CALL ifProc1(); #ifProc1 스토어드 프로시저 실행

🚨 값이 같다는 표현은 == 가 아닌 = 로 표현!

- 조건에 따라 다른 부분을 수행해야 할 땐 IF ~ ELSE문 으로

- 아이디가 APN(에이핑크)인 회운의 데뷔 일자가 5년이 넘었는지 확인하고 5년이 넘었으면 축하 메시지 출력

참고) 날짜관련된 함수
- CURRENT_DATE(): 오늘 날짜
- CURRENT_TIMESTAMP() : 오늘 날짜 및 시간을 함께 출력
- DATEDIFF(날짜1, 날짜2) : 날짜2부터 날짜1까지 일수로 몇일인지 알려줌.

(2) CASE문 : 여러가지 조건 중에서 선택해야하는 경우

ex) 회원들의 총 구매액을 계산해서 회원의 등급을 4단계로 나누기
1) 구매 테이블에서 ORDER BY를 통해 회원별로 총 구매액을 구한 후에 내부조인으로 구매한 회원들에 대해서만 출력

SELECT B.mem_id, SUM(price*amount) "총구매액"
FROM buy B
INNER JOIN member M
ON B.mem_id = M.mem_id
GROUP BY mem_id
ORDER BY SUM(price*amount) DESC;

2) 외부조인으로 구매하지 않은 회원도 포함하여 출력

SELECT M.mem_id, M.mem_name, SUM(price*amount) '총구매액',
CASE
WHEN (SUM(price*amount) >= 1500) THEN '최우수고객'
WHEN (SUM(price*amount) >= 1000) THEN '우수고객'
WHEN (SUM(price*amount) >= 1) THEN '일반고객'
ELSE '유령고객'
END "회원등급"
FROM buy B
RIGHT OUTER JOIN member M
ON B.mem_id = M.mem_id
GROUP BY M.mem_id
ORDER BY SUM(price*amount) DESC;

회원등급열이 추가되어 거기에 최우수고객, 우수고객, 일반고객, 유령고객으로 표시된다.

(3) WHILE문 : 조건식이 참인동안 필요한 만큼 같은 내용 반복

ex) 1부터 100까지 값을 모두 더하는 WHILE문

ex) 1부터 100까지의 합계에서 4의 배수를 제외하고, 1000이 넘어가는 순간의 숫자를 출력하고 프로그램을 종료하려면?
💡 ITERATE, LEAVE문 이용!
ITERATE 레이블 :지정한 레이블로 가서 계속 진행
LEAVE 레이블 : 지정한 레이블을 빠져나가서 WHILE 종료

(4) 동적 SQL : 미리 SQL을 준비하고 나중에 실행하는것.
- PREPARE 문에서 ?로 향후에 입력될 값을 비워놓고, EXECUTE 문에서 USING으로 ?에 값을 전달.
ex) 출입증을 태그하는 순간의 날짜와 시간이 INSERT문으로 만들어져 입력되도록.

DROP TABLE IF EXISTS gate_table;
CREATE TABLE gate_table (id INT AUTO_INCREMENT PRIMARY KEY, entry_time DATETIME);
SET @curDATE = CURRENT_TIMESTAMP();
PREPARE myQuery FROM 'INSERT INTO gate_table VALUES(NULL,?)'; #?로entry_time값 비워둠.
EXECUTE myQuery USING @curDate;
DEALLOCATE PREPARE myQuery;
SELECT * FROM gate_table;

id INT AUTO_INCREMENT : 아이디가 자동증가하도록 생성
entry_time : 출입하는 시간은 DATETIME형으로
?로 비워둔 곳에 @curDate가 채워지면서 myQuery실행됨! 그러므로 이 SQL을 실행한 시점의 날짜와 시간이 입력됨.

# data[].attributes.attachment_link.description
(1) 숫자형 : 더하기/빼기 연산의 의미가 있거나 크다/작다 또는 순서의 의미가 있는 경우.정수형\- 데이터 형식마다 숫자 범위가 정해져있는데 입력값의 범위를 벗어나면 오류가 남.\- UNSIGNED를 이용하면 범위를 0부터 시작되도록 할 수 있다. ex) 열이름 T

# data[].attributes.body
화이팅입니다!!

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 공부하고 먹는 일상

# data[].attributes.attachment_link.description
#혼공학습단 #혼공머신 2주차 진도는 Chapter 03. 회귀 알고리즘과 모델 규제이다. 03 회귀 알고리즘과 모…

# data[].attributes.body
3주차 좀 늦었네요. 좀 더 빠르게 제출하려고 노력하겠습니다

# data[].attributes.attachment_link.title
파이썬 - 혼공파 3주차 : 네이버 블로그

# data[].attributes.body
2주차까지는 이해하는데 크게 어려움 없이 글을 어떻게 써야 할지를 고민했다면 3주차 부터는 내용를 이해하는데 조금 더 난이도가 느껴지네요 ㅋㅋㅋㅋ 과제를 하긴했는데 설 연휴때 다시 한번 책을 봐야겠네요 ㅎㅎ

# data[].attributes.attachment_link.title
[혼공파] 3주차 반복문

# data[].attributes.attachment_link.description
2주차 과제 리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 포스팅하기 리스트사전적 의미 : 목록파이썬에서의 의미 : 자료를 저장할 수 있는 자료목록에서 들어 있는 자료 : 요소(element) 예시리스트 선언list_a = [ 273, 23, 103, ”문자열”, True, False] 활용p95에서 배웠던 인덱스 개념이 여기서도 적용되는데 선언한 리스트 중에 요소를 인덱스를 통해서 선택, 변경 할수 있다 딕셔너리키를 기반으로 여러가지 자료를 저장할 수 있는 자료형임여기서 키란 일대일 대칭을 통해서 저장된 자료 리스트는 순서로 정하지만 여기서 일대일 대칭된 키를 통해서 선택 변경 가가능 범위 자료형범위내의 숫자를 리스트로 가지는 자료형

# data[].attributes.body
이번 주차는 컴구인데도 새롭게 배우는 내용이라 저번 주보다는 더 열심히 공부한 것 같아요!

13기분들 모두 즐거운 설 연휴 되셨으면 좋겠습니다! 연휴 동안 푹 쉬고 다시 열공 해볼게요!!

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
3주차 업로드 ✅

# data[].attributes.attachment_link.title
[혼공컴운] Week3. 메모리와 보조기억장치

# data[].attributes.attachment_link.description
✳︎ 메모리와 캐시 메모리✦ RAM의 특징과 종류 - RAM은 휘발성 저장 장치이고, 보조기억장치는 비휘발성 저장 장치입니다. - DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM 입니다. - SRAM은 시간이 지나도 저장된 데이터가 사라지지 않는 RAM 입니다. - SDRAM은 클럭과 동기화된 DRAM 입니다. - DDR SDRAM은 SDR SDRAM에 비해 대역폭이 두 배 넓습니다. ✦ 메모리의 주소 공간 - 물리 주소는 메모리 하드웨어상의 주소이고, 논리 주소는 CPU와 실행 중인 프로그램이 사용하는 주소입니다. - MMU는 논리 주소를 물리 주소로 변환합니다. - 베이스 레지스터는 프로그램의 첫 물리 주소…

# data[].attributes.body
너무너무 하기 싫었지만.. 극뽁 ~!!

# data[].attributes.attachment_link.title
[혼공분석] 3주차: 데이터 정제하기

# data[].attributes.attachment_link.description
공부하면서 느낀 건데 교재가 참 좋아요.. ~학교에서 강의 들을 때 패키지, 메서드, 함수, 속성.. 뭐가 정말 많은데 깔금하게 정리가 안 돼서 공부하는 데 힘들었거든요..막 query, groupby, agg... 이런 거 막 나오기 시작하고 제대로 정리가 안되어 있으면 쓸 수도 없단 말이죠... 갑자기 저번 학기 생각에 눈물이 날라 그러네... 이 교재는 함수랑 메서드 별로 정리도 다 있구 !! 교재 만족도 최상 ~~~~~ Chapter 03. 데이터 정제하기03-1. 불필요한 데이터 삭제하기데이터 정제: 데이터에서 손상되거나 부정확한 부분을 수정, 불필요한 데이터를 삭제하거나 불완전한 값을 교체하는 등의 작업 불러온 데이터에 NaN (= 결측치, 누락된 값) 확인 → 분석 전 다른 값으로 대체하거…

# data[].attributes.body
십여년만에 그림판도 들어가서 써보고 컴퓨터와 쫌더 친해진거같네요 ㅎㅎ 프로그램맹 벗어나기 위해 노력중입니다~

설연휴 잘 보내시기 바랍니다^^

# data[].attributes.attachment_link.title
혼자 공부하는 프로그래밍 wigh 파이썬 3주차 : 네이버 블로그

# data[].attributes.body
3주차 마무리입니다!

이 많던 걸 어떻게 다 하나 싶었는데 혼공 학습단을 통해서 컴퓨터구조를 마무리 지을 수 있었네요😆 설 연휴 뿌듯하게 보낼 수 있을 것 같아요! 떡국 N그릇 먹어야겠습니다ㅎㅎ 설 연휴 잘 보내시고 4주차도 힘차게 시작해 보겠습니다😎

# data[].attributes.attachment_link.title
기록 저장소 : 네이버 블로그

# data[].attributes.body
이름에 회귀가 있지만 분류 모델인 로지스틱 회귀라니.. 참 특이한 친구엿네요.

벌써 절반이나 지났다는 게 안 믿기네요!

연휴 잘 보내시길 바랍니다. 하하

# data[].attributes.attachment_link.readable_text
3주차

Ch. 04 다양한 분류 알고리즘
ㄴ 04-1 로지스틱 회귀
ㄴ 04-2 확률적 경사 하강법

데이터 준비 과정은 간단히 보자!

타깃 데이터로 species 열, 이외의 5개 열은 입력 데이터로 사용하고,

StandardScaler 클래스를 사용해서 표준화 전처리를 마쳤다.

모델 학습과 점수는 [8]셀에서 확인할 수 있다.

[9]셀에서는 클래스를 출력해보면 정렬된 타깃값이 알파벳 순 이라는 점을 알 수 있다.

테스트 셋의 처음 5개의 샘플으로 예측한 값과 그 확률을 확인해보았다.

✅predict_proba() : 클래스별 확률값 반환
✅round()의 decimals : 소수점 자릿수 지정

확률의 각 열은 이전의 알파벳 순으로 정렬된 클래스 순서이다.

아래에는 세 번째 샘플의 이웃을 실제로 출력해본 결과이다.

이웃 세 개 중 2개가 'Perch', 1개가 'Roach' 이므로 위의 확률과 동일하다는 점을 알 수 있다.

로지스틱 회귀는 회귀라는 이름을 가지고 있지만 분류 모델이라고 한다.

또한 선형 방정식을 학습한다는 점! 식으로 나타내면 z = (~가중치 x 특성~) 이런 식이라고 한다.

여기서 z를 0~1 사이의 확률로 만들기 위해 사용하는 것이 시그모이드 함수 이다.

시그모이드 함수는 이렇게 생겼다..

그래프를 보면 z값이 커질수록 1에 영원히 가까워지고, z값이 작아질수록 0에 영원히 가까워지는 것을 볼 수 있다.

즉 절대적으로 0과 1사이의 값이라는 것이다.

시그모이드 함수는 딥러닝으로 넘어갔을 때 LSTM이나 GRU의 활성화 함수로도 사용이 된다.

그 때 가서 이게머지.. 하지 않도록 기억해서 나쁠 건 없다.

이제 로지스틱 회귀를 사용해서 이진 분류 를 해보자.

먼저 불리언 인덱싱 에 대해 간단히 알아보면

위의 print 식을 보면 True 인 값만 출력된 것을 볼 수 있다.

이걸 활용해서 이전의 생선 7종 데이터를 Bream, Smelt 행만 남겼다.

인덱싱한 데이터로 훈련시키고 예측값과 확률까지 확인할 수 있다.

클래스 두 개만 인덱싱 했기 때문에 확률도 2개의 열만 나오는 것을 확인할 수 있다.

그리고 클래스를 출력해서 각 열이 어떤 클래스의 확률인지도 확인이 가능하다.
어차피 이진 분류이고 알파벳 순이라는 것을 아니까 출력하지 않아도 생각해보면 되겠지만...
로지스틱 회귀가 학습한 계수도 출력해볼 수 있다. 선형 회귀랑 비슷하다는걸 다시 한 번 느낄 수 있다..

[21]셀은 z값을 출력한 것이고, [22]셀은 z값에 시그모이드 함수를 적용시켜서 확률로 변환한 결과이다.

✅decision_function() : z값 출력
✅scipy 라이브러리의 expit() : 시그모이드 함수

이제 다중 분류 를 해보자.

이전과 내용은 동일하다.

다른 점으로는 매개변수가 생겼다는 점..?

✅C : 규제 조절 > 값이 클수록 정규화 효과 약해짐
✅max_iter : 에포크 설정

학습한 모델의 계수를 확인해보면

각 클래스마다 z값을 계산한다는 점을 알아낼 수 있다.

다중분류에서의 z값과 확률도 확인할 수 있다.

여기서 이진분류와 다른 점은 시그모이드 함수가 아닌 소프트맥스 함수 를 사용한다는 점이다.

소프트맥스도 활성화 함수로 많이 사용된다.

04-2 확률적 경사 하강법

✅점진적 학습 : 새로운 데이터가 추가되었을 때 새로운 데이터에 대해서만 추가로 훈련
> 대표적인 알고리즘으로 확률적 경사 하강법이 있다!

✅확률적 경사 하강법
훈련 세트를 이용하여 가장 가파른 길을 찾음
but. 딱 하나의 샘플을 랜덤하게 골라 가장 가파른 길을 찾음
이걸 모든 샘플 사용해서 손실이 원하는 만큼 떨어질 때 까지 계속 시도...

이제 확률적 경사 하강법 활용 Go Go

데이터 준비와 전처리는 이전과 동일하다.

이어서 SGDClassifier 클래스를 사용하면 확률적 경사 하강법을 활용할 수 있다.

✅SGDClassifier : 확률적 경사 하강법을 활용한 분류용 클래스
> loss, max_iter 지정

손실 함수로는 log_loss(로지스틱 손실 함수), 에포크는 10으로 설정하여 학습시켰다.

그리고 정확도를 출력하면 웬 경고 하나가 같이 뜬다............

이 경고는 에포크 수를 늘리면 된다고 한다.

하지만 진짜 그냥 경고이기 때문에 무시해도 상관은 없다. 단지 내가 탄생시키는 모델이 바보가 되는 것 뿐...

추가 훈련을 시킬때는 partial_fit()을 사용하면 된다.

내가 돌린 결과는 책보다 훨씬 더 높은 정확도가 나오게 되었다.. (뭔진 모르겠지만 일단 대박)

✅partial_fit() : 점진적 학습에서 추가 훈련을 할 때 사용할 수 있다.

확률적 경사 하강법을 사용한 모델은 에포크 수에 따라 과대·과소적합이 될 수 있다.

너무 작아도 안되고 너무 커도 안되니 그 사이의 적절한 에포크 수를 찾는 것이 관건이다..

에포크 300으로 추가 학습을 하고 각 에포크마다의 정확도를 나타낸 그래프이다.

초기에는 정확도가 너무 낮고 100 이후로는 커질수록 정확도의 차이가 점점 커지는 것을 볼 수 있다.

따라서 가장 적절한 에포크 수는 100!!!

이를 통해 에포크를 100으로 맞추면 훨씬 높은 정확도가 나오게 된다. 야호!

추가로 tol 파라미터를 설정하면 성능이 향상되지 않을 때 자동으로 학습을 멈춘다.

보통 1e-3으로 설정하는듯??!!

✅tol : 자동으로 학습을 멈출 지 설정

기본 과제 : 4-1 확인문제 2

2. 로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?

정답은 ① 시그모이드 함수 !!

시그모이드 함수를 이용해서 z값을 0~1사이의 확률로 변환해서 출력했었죠. 후후

다중 분류에서는 소프트맥스 함수 사용했던 것까지 잊지 않으면 완벽할 것 같습니다!

추가 과제 : 4-2 과대적합 / 과소적합 손코딩 코랩 화면 캡처

이번 주는 좀 열심히 한 것 같아서 뿌듯하당.

이번 범위 왠지 모르게 수학식이 쏟아져 나온 것 같아서 머리 북북 긁으면서 봄..

점진적 학습이라는 거 미리 알았으면 저번 주 뺑이칠 때 모델 학습 40분씩 안기다려도 됏을텐데...................

어쨋든

다음 주 하루종일 드러누워서 애니도 보고 푹~~~ 쉴 생각에 조커됨 부힛부힛..

다음 주 만큼은 다 잊고 즐기자..

연휴 끝나면 또 BTS급 스케줄 준비되어있음

아 가라고요..

# data[].attributes.attachment_link.title
[혼공머신] 3주차_ 로지스틱 회귀, 시그모이드, 소프트맥스 / 확률적 경사 하강법

# data[].attributes.attachment_link.description
3주차Ch. 04 다양한 분류 알고리즘 ㄴ 04-1 로지스틱 회귀 ㄴ 04-2 확률적 경사 하강법04-1 로지스틱 회귀데이터 준비 과정은 간단히 보자!타깃 데이터로 species 열, 이외의 5개 열은 입력 데이터로 사용하고,StandardScaler 클래스를 사용해서 표준화 전처리를 마쳤다.

# data[].attributes.body
감사합니다.

# data[].attributes.attachment_link.title
[혼공네트] 3주차: 네트워크 계층

# data[].attributes.attachment_link.description
혼자 공부하는 네트워크

# data[].attributes.body
문제도 같이 풀며 실력이 조금씩 느는거 같아 기분이 좋았습니다.

# data[].attributes.body
3주차 완료했습니다. 블로그 작성 후 코드 사진이 먼저 올라가는 오류가 발생하네요ㅠ

설 연휴 잘 보내세요:)

# data[].attributes.attachment_link.title
[혼공학습단] 혼자 공부하는 C언어 3주차

# data[].attributes.attachment_link.description
chapter 05 선택문]~[chapter 06 반복문] 05-1 if문 if문의 기본형식 -기본 if문은 조건식을 만족하면 실행문 실행, 그렇지 않으면 실행하지 않고 지나감 if ~ else문 -조건이 만족하지 못할 때에도 실행문이 있는 경우 if ~ e

# data[].attributes.body
세이프!!!!

이번 파트도 재밌었습니다!!!

모두 즐연휴 되세요~

# data[].attributes.attachment_link.description
리스트
여러가지 자료를 저장 (서로 다른 데이터 타입도 한 곳에 저장 가능)
대괄호([])로 정의
리스트 내부의 추가, 삭제, 수정이 가능
(중요!) 인덱스는 0부터 셈 예제
출력: 딕셔너리
키(key)와 값(value)의 쌍으로 데이터를 저장
중괄호({})로 정의, 키:값 형태를 쉼표로 연결하여 만듦
내부의 값 변경, 추가, 제거 가능
(중요!) 요소…

# data[].attributes.body
생각보다 양이 많네요.. 더 열심히 하겠습니다.

# data[].attributes.attachment_link.title
[혼공네트] #3 - 네트워크 계층 : 네이버 블로그

# data[].attributes.body
늘 감사드립니다~

링크 : 혼공 SQL 3주차 미션

# data[].attributes.body
모두 화이팅입니다

# data[].attributes.attachment_link.title
[혼공머신] 3주차 과제

# data[].attributes.attachment_link.description
혼자 공부하는 머신러닝 + 딥러닝 과제1) ch4-1 확인문제 2번 풀이 Q. 로지스틱 회귀가 이진분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요? A. 1번 시그모이드 함수로지스틱 회귀(Logistic Regression)가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 시그모이드 함수입력값(z)을 0과 1 사이의 값으로 변환하여 확률로 해석할 수 있음.

# data[].attributes.body
지도학습의 대표적인 이진 분류 와 다중분류에 대해 공부하였습니다. 로지스틱 회귀에서 종속변수가 범주형일 때 sigmoid 함수를 통해 확률분포를 0~1사이의 확률분포로 나타내어 회귀식을 이용하지만 분류문제로 처리할 수 있습니다. 이진분류 시 logistic, 3개 이상 다중분류 시 softmax.

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
숙제 제출 까먹을뻔하다가 아슬아슬 세이프!!

# data[].attributes.attachment_link.title
[혼공파]3주차_리스트,딕셔너리,반복문

# data[].attributes.body
설날 연휴와 다른 일정이 겹쳐서 힘들었다.

이번주는 정리를 기한 내에 못할 것 같아서 눈코딩해버렸다.

# data[].attributes.attachment_link.title
[혼공분석] 3주차 (1) - Chapter 03-1: 불필요한 데이터 삭제하기

# data[].attributes.attachment_link.description
Chapter 03. 데이터 정제하기
>
학습 목표
데이터프레임에서 불필요한 행과 열을 삭제하거나 데이터값을 바꾸는 방법을 배웁니다.
정규 표현식을 사용해 잘못된 값을 고치거나 누락된 값이 있는 경우 웹 스크래핑하여 얻은 값으로 채웁니다. 03-1 불필요한 데이터

# data[].attributes.body
매번 피드백 감사하게 보고 있습니다. 덕분에 쾌차했어요 🥰

족장님께서 말씀하신 것처럼 블로그 가독성에 대한 고민을 하고 있는데요..아직은 중간점을 찾기 위해 방황하고 있는 것 같습니다...

그럼에도 열심히 달려보겠습니다~! 다른 분들도 화이팅하세요!!

그럼, 다들 새해 복 많이 받으세요😆

# data[].attributes.body
복 많이 받으시고 건강하세요~

# data[].attributes.attachment_link.title
혼공학습단 13기 혼공스 3주차 : 네이버 블로그

# data[].attributes.body
정말 간단하게 정리하는 블로그에서

정성을 가득하여 맨날 적게 되는 것 같습니다!!

아무래도 어려워진 만큼 저도 노력을 더 하는 것 같네요!!! 정치기를 치려고 공부를 했지만 어느 순간 자바의 마스터가 될수도?

# data[].attributes.body
3주차 제출합니다!

다들 새해 복 많이 받으세요~~🙌

# data[].attributes.attachment_link.title
[혼공머신] 4-2. 확률적 경사 하강법

# data[].attributes.attachment_link.description
이번 시간 학습 목표는 🥕 경사하강법 알고리즘 이해하기 입니다!! 새롭게 해결해야 할 문제는 앞으로 계속 머신러닝 모델을 학습할 샘플 데이터들이 추가될거고 모든 생선이 도착할 때까지 기다릴 수는 없는 상황입니다. 데이터가 점점 늘어나면서 늘어나는 데이터를 반영해서 매

# data[].attributes.body
3주차 완료했습니다

# data[].attributes.attachment_link.title
[혼공학습단 13기] 3주차_리스트, 딕셔너리, 범위 자료형

# data[].attributes.attachment_link.description
● 기본 숙제 <리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 포스팅하기> 1. 리스…

# data[].attributes.body
미리 해둔 덕분에 무사히 올립니다. 허리가 아파서 앉아있기가 힘들어 추가하고픈 내용이 많은데 추가하지 못하고 올리는 게 아쉽습니다ㅠㅠ설 연휴 다들 아프지 마시고 복 많이 받으세용

저는 설 연휴동안 회복하고 오겠습니다!

# data[].attributes.attachment_link.description
이 플리 들으면서 하면 느낌 있는 척 코드 실행 가능3주차(1/20 ~ 1/26)Chapter 05 ~ 06혼공 용어 노트에 용어 추가 등 노트 활용하고 공유하기p. 151 크리스마스 소개팅 예문 if 문 손코딩 인증 또는 실행 화면 캡처하기더보기 오늘 꿈에서 ‘나는 리뷰어다 2025’ 당첨 메일이 온 꿈을 꿔버림. 설레서 일어나자마자 허겁슨 허급슨 메일함부터 열어 본 사람됨.그리고 클로드가 실력이 늘고 있다고 해서 햄부기됨그런데 프로젝트 템플릿 만들어서 계속 사용 중이였는데 맨날 scanf_s를 사용해야 하는 거랑 오류가 계속 생기는 게 이상함- 숙제혼공 용어 노트 16p, else if문에 추가할 내용으로, if문의 조건이 만족하지 않을 경우에 넘어가는 문으로, if문의 조건도 포함되어 있으므로 선행…

# data[].attributes.body
3주차 제출합니당

다들 새해복 많이 받으시고 즐거운 설연휴 보내세요~!~

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
진짜 바쁜데 혼공 학습단 때문에 진도 따라가고 있는 거 같아요. 감사합니다 ㅠㅠ혼자했으면 절대 못했어요

# data[].attributes.attachment_link.title
[혼공s] 3주차 : 네이버 블로그

# data[].attributes.body
이번 설 연휴에 4주차도 미리 해보려고 합니다 ~~ 3주차 해보고나니 재미있어서 지금 드는 생각이지만 설 연휴가 끝났을 때 과연 했을지는... 미지수이긴 합니다 그래도 내일부터 4주차 조금씩 해보려구요 ! 파이썬이랑 비슷하면서 다른 r의 새로운 개념들 !! 재밌어요..!! 여기 계신 분들 모두 새해 복 많이 받으세요 :)

# data[].attributes.attachment_link.description
Chapter 03 1) 변수와 함수 (1) 변수 만들기 첫 문자는 반드시 영문자 (알파벳) 또는 마침표(.) 사용
첫 문자에는 숫자, 밑줄 문자 (_) 사용 불가
마침표 (.)와 밑줄 문자 (_)를 제외한 특수문자 사용 불가
대문자와 소문자 구분
변수명 중간에 빈칸을 넣을 수 없음. 빈칸은 밑줄 문자 (_)를 활용하여 표현 | 변수 이름으로 사용…

# data[].attributes.body
별표 트리 어렵군요 어떻게 풀긴 했지만...

즐거운 설 연휴 보내세요!

# data[].attributes.attachment_link.description
기간2025-01-20 ~ 2025-01-25비파괴적 처리와 파괴적 처리의 의미와 장단점 설명하기의미비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않음파괴적 처리 : 처리 후에 원본 내용이 변경됨장/단점비파괴적 처리 장점 : 원본 자료를 보호할 수 있음단점 : 메모

# data[].attributes.body
벌써 3주나 됐다니..

저는 요즘 데이터 공부하면서 ccna를 준비하고 있답니다☺️

설에도 노트북을 들고 가지 않을까 싶어요.

다들 명절 잘 보내세요!

# data[].attributes.attachment_link.readable_text
안녕하세요 (●'◡'●)

그제 돌아왔는데 연휴 끼어있고 하니까 정신이 없네요...

나름 괜찮게 찍힌 사진 몇 장정도 공유드립니다

도쿄타워

슬램덩크를 좋아해서 강백호의 그 유명한 곳을 다녀왔습니다 👍

아키하바라

아키하바라

이 모든 계획의 이유

제가 주술회전을 진짜 좋아하는데요

시부야에 꼭 다녀오고 싶었어요

친구랑 같이 갔는데 친구 먼저 돌아가고 혼자 덕후 투어를 했답니다

귀멸의 칼날 전시회도 보러 갔어요 이제 한국인이 나뿐인...

아사쿠사

정말 솔직하게 저 오므라이스가 너무 먹고 싶어서 시간 남은 김에 아사쿠사 갔어요

계획이 있으시다면 꼭 드시고 손해 보지 마시길...
https://maps.app.goo.gl/3TMmMihX7kRXxyiA7
운세 뽑았는데 길이 나왔잖아.. 럭키채연

tmi

한번 결제 이슈로 헤매는데 어떤 소녀들이 도와줬어요

백 번 감사 인사하고 마이쮸를 드렸는데 너무 좋아하셔서 기분이 좋았답니다

미용실 쌤한테도 드렸는데 다들 마이쮸 좋아하셨어요

!! 돈키호테에서 소니 헤드폰 완전 큰 할인을 해요

⁶

(p.113)

숫자 3개를 더하는 코드를 작성해 실행 결과처럼 출력하기

* 교재 106-107쪽 참고하면 풀 수 있는 문제!

코드

결과

²

(p 143)

다음 조건문이 정상적으로 작동되도록 빈칸을 채워 보세요

* age값은 임의로 넣었습니다.

코드

# data[].attributes.attachment_link.description
안녕하세요 (●'◡'●)그제 돌아왔는데 연휴 끼어있고 하니까 정신이 없네요...나름 괜찮게 찍힌 사진 몇 장정도 공유드립니다 도쿄타워 슬램덩크를 좋아해서 강백호의 그 유명한 곳을 다녀왔습니다 👍 아키하바라 이 모든 계획의 이유제가 주술회전을 진짜 좋아하는데요 시부야에 꼭 다녀오고 싶었어요 친구랑 같이 갔는데 친구 먼저 돌아가고 혼자 덕후 투어를 했답니다귀멸의 칼날 전시회도 보러 갔어요 이제 한국인이 나뿐인...

# data[].attributes.body
벌써 3주차까지 달려오다니, 정말 뿌듯하네요! 😊
혼공단 덕분에 여기까지 올 수 있었던 것 같아요.
모두 행복하고 즐거운 설 연휴 보내세요! 😃

# data[].attributes.attachment_link.description
CH04 반복문학습목표배열파괴적 처리와 비파괴적 처리for in 반복문, for of 반복문, for 반복문, while 반복문4-1 배열배열은 여러 자료를 묶어서 활용할 수 있는 특수한 자료 구조입니다.문자열 예시const str = ‘안녕하세요’;console.log(str[2]); // 하console.log(str[str.length - 1]); // 요배열 만들기대괄호 [..]를 사용해 생성하고, 내부의 값을 쉼표 ,로 구분합니다.배열 내부에 들어 있는 값을 ”요소”라고 합니다.배열 요소에 접근접근 방법: 배열[인덱스]인덱스(Index)는 요소의 순서를 나타내며, 0부터 시작합니다.배열 요소 개수 확인배열의 요소 개수를 확인하려면 .length 속성을 사용합니다.예시const fruits = […

# data[].attributes.body
조건문, 반복문... 많이 쓰이는 내용이라 열심히 공부했습니다! +_+ 이제 설 연휴를 맞이하게 되었는데 다들 새해 복 많이 받으세용 ~ 저는 연휴 내내 아무데도 가지 않을 예정이라.............. 푹 쉬고 4주차 때 뵙겠습니다!

# data[].attributes.attachment_link.title
눈 떠 봐 세계가 변하잖아 : 네이버 블로그

# data[].attributes.body
주말에 공부하고 정리하려고 하니 저번주에 공부한 것이 기억이 안나서 다시금 복기하고 이번주 분량을 공부하였습니다. 막 그렇게 어렵지 않게 전반적인 컴퓨터의 원리를 공부할 수 있어 새삼스럽게 강의가 참 좋다는 생각이 들었습니다.

# data[].attributes.attachment_link.description
지난 이야기코어는 명령어를 해석하고 실행하는 부품이다. CPU는 코어 여러개가 들어있는 부품이다. 반드시 연산속도가 코어의 수에 비례하여 증가하진 않는다. 스레드란 ‘실행 흐름의 단위’이다. 소프트웨어적 스레드와 하드웨어적 스레드로 나뉜다. 하나의 코어가 하나의 명령어를 처리하면 1코어 1스레드로 볼 수 있을 것이다. 코어가 2개인데 한번에 실행가능한 명령어 흐름은 각각 2개라면 2코어 4스레드라고 부른다. 소프트웨어 스레드는 하나의 프로그램에서 독립적으로 실행되는 단위이다. 워드 프로세서 프로그램에서 맞춤법 검사와 화면 출력이 하나의 프로그램에서 동시에 실행되어가는 것이 그 예이다. 소프트웨어적 스레드의 구현은 코어 개수나 하드웨어적 스레드와는 무관하다. 하드웨어적 스레드의 구현은 레지스터의 중복이…

# data[].attributes.body
설날 잘보내세요!

# data[].attributes.attachment_link.title
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

# data[].attributes.attachment_link.description
A new tool that blends your everyday work apps into one. It’s the all-in-one workspace for you and your team

# data[].attributes.body
모두들 새해 복 많이 받으세요!

# data[].attributes.attachment_link.title
[혼공파] 3주차_혼공분석

# data[].attributes.attachment_link.description
3-1. 불필요한 데이터 삭제하기¶ - 열 삭제하기¶ In [369]:import pandas as pdns_df = pd.read_csv(‘ns_202104.csv’, low_memory = False)ns_df.head() Out[369]: 번호도서명저자출판사발행년도ISBN세트 ISBN부가기호권주제분류번호도서권수대출건수등록일자Unnamed: 1301인공지능과 흙김동훈 지음민음사20219788937444319NaNNaNNaNNaN102021-03-19NaN12가짜 행복 권하는 사회김태형 지음갈매나무20219791190123969NaNNaNNaNNaN102021-03-19NaN23나도 한 문장 잘 쓰면 바랄 게 없겠네김선영 지음블랙피쉬20219788968332982NaNNaNNaNNaN102021-03…

# data[].attributes.body
3주차 완료! 어느새 혼공학습단도 절반이 끝났네요!

즐거운 설 연휴 보내세요~

# data[].attributes.attachment_link.description
Ch 04. SQL 고급문법📌 이 챕터에서는 다양한 데이터 형식을 배우고 두 테이블을 연결하는 조인에 대해서 공부하였다. MySQL의 데이터 형식다양한 데이터 형식이 존재하는 이유: 실제로 저장될 데이터는 영상, 텍스트, 소리 등 형태가 다양하기 때문정수형 데이터: 소수점 없는 숫자 데이터로 숫자 범위별 다양한 데이터 형식이 존재함TINYINT UNSIGNET 예약어 사용실수형 데이터: 소수점 있는 숫자 데이터소수점 표현 범위: FLOAT 문자형 데이터: 글자 저장시 사용하며 최대 입력 글자수를 지정해야 함고정길이문자형(CHAR), 가변길이문자형(VARCHAR)로 나뉨날짜형 데이터날짜만(DATE), 시간만(TIME), 날짜시간(DATETIME)대량 데이터소설이나 영화 대본 데이터: TEXT 사진이나 동…

# data[].attributes.body
다 아는내용이라고 생각했는데 정리하려니 잘 기억나지 않아 당황했다. 배웠던 내용이라도 방심하지 않고 더 열심히 해야지!

# data[].attributes.attachment_link.title
[혼공컴운]3주차_챕터6~8(메모리와 캐시메모.. : 네이버블로그

# data[].attributes.body
3주차도 즐겁게 진행해보았습니다. 순서도는 GPT의 힘을 빌려서 실행했습니다. 연휴 즐겁게 보내시길 바랍니다

# data[].attributes.attachment_link.title
[혼공알코 3주차] 혼자 공부하는 프로그래밍 .. : 네이버블로그

# data[].attributes.body
세부적인 차이를 알고 나면 머릿속에서 개념이 더 명확히 자리 잡는것 같다.

# data[].attributes.attachment_link.title
🎯 [스터디 3주차] 혼자 공부하는 컴퓨터구.. : 네이버블로그

# data[].attributes.body
OOP의 시작인 클래스에 대해서 공부했습니다!! 정말 오래 걸린 것 같아요... 블로그 글 자체도 엄청 길어졌네요 ㅎㅎ 지난 번에 제 블로그 변화를 눈치채주셔서 엄청 놀랐어요! 어렵지만 제 입맛에 맞게 하나씩 변화하는 점이 정말 재미있는 것 같아요. 이번 연휴에 저는 스프링과 함께 7장 상속을 공부할 예정이에요! 모두 즐거운 연휴 보내세요 ㅎㅎ

# data[].attributes.attachment_link.title
[혼공자] 3주차 자바의 클래스

# data[].attributes.attachment_link.description
객체 지향 프로그래밍의 꽃 클래스에 대해 학습했습니다.