블로그

두부

[인프런 워밍업 클럽 2기 - CS] 1주차 미션

운영체제 while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?폴링방식을 사용하면 스킬 사용 여부를 체크하는 동안 다른 일을 수행할 수 없기 때문에 폴링방식 보다는 인터럽트 방식을 사용하여 비동기적으로 스킬 사용 여부를 체크하면 더 효율적으로 체크할 수 있을 것 같습니다.let isActivated = false; setTimeout(() => { isActivated = checkSkillActivated(); }, 1000);자바스크립트 코드로 작성해보았습니다.프로그램과 프로세스가 어떻게 다른가요?프로그램은 컴퓨터의 저장장치 저장된 코드의 집합이고, 해당 프로그램이 실행되기 위해서 메모리에 올라왔을 때 프로세스라고 불립니다.멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티프로그래밍은 메모리의 관점에서 말한 것으로, 메모리 위에 여러 개의 프로세스가 올라와 있는 걸 말합니다. 멀티프로세싱은 CPU 관점에서 말한 것으로, CPU가 메모리 위에 올라와있는 여러 개의 프로세스를 스케줄링 알고리즘에 따라서 처리해주는 것을 말합니다.운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?운영체제는 프로세스를 관리해주기 위해서 해당 프로세스에 대한 정보가 담겨있는 PCB를 만들고, CPU 스케줄링 알고리즘을 이용하여 메모리에 올라와있는 여러 개의 프로세스들이 공평하게 실행될 수 있도록 해줍니다.컨텍스트 스위칭이란 뭔가요?운영체제는 CPU 스케줄링 알고리즘을 통해서 메모리에 올라와있는 여러 개의 프로세스들이 공평하게 실행될 수 있도록 해줍니다. 이 과정에서 CPU 자원을 사용하는 프로세스가 계속 변경되게 되는데, 그 때 CPU가 이전에 작업하던 부분부터 계속 이어서 작업을 처리해 줄 수 있도록 프로세스에 대한 정보가 담긴 PCB도 교체해줘야 합니다. 이렇게 PCB를 각 프로세스에 맞는 PCB로 교체해주는 과정을 컨텍스트 스위칭이라고 합니다.자료구조와 알고리즘여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.학생이 전학하거나 전학오면 학생을 추가하거나 제거할 수 있어야 함 (드뭄)원하는 학생을 선택하면 해당 학생에 대한 정보를 가져올 수 있어야 함 (추가/제거 보다는 자주)저라면 배열을 선택할 것 같습니다. 교실이 학교의 교실이라고 가정했을 때, 한 학급에서 구성원의 변화는 잘 일어나지 않습니다. 따라서 위와 같이 학생 정보는 수정될 수 있어야 하나 그 빈도가 정보 조회보다는 적기때문에, 정보 수정 과정에서 겪을 패널티보다 (O(n)) 정보 조회로 얻을 이점(O(1))이 더 크다고 판단되기 때문입니다.배열의 인덱스가 학생의 출석번호가 되도록 하면 정보 검색시 O(1)의 효율이 나올 것 같습니다.여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.저라면 큐를 선택할 것 같습니다. 주문이 들어온 순서대로 처리되어야 한다면 선입선출 방식의 자료구조가 채택되어야 효율적일텐데, 큐가 선입선출 방식의 자료구조이기 때문입니다.

빠타박스

[인프런 워밍업클럽 2기] CS전공지식_발자국_1주차

1. 개요이름: 인프런 워밍업 클럽 2기 - CS 전공지식 빠타박스 [신충식]기간: 2024.09.30 - 2024.10.04  2. 목표 및 성과설정한 목표: 자료구조와 알고리즘, 운영체제에 대한 이해 직접 말하며 학습 및 노션 기록달성한 성과: 대부분 말로 하지 못하는 몇가지 운영체제 및 알고리즘 자료구조에 대한 이해를 할 수 있었다. 3. 잘된 점 (Keep)성공적인 요소: CS 전공지식에 대한 부분을 조금더 말로써 표현할 수 있는 부분 긍정적인 : CS 전공지식 과정이 10월 18일날 종료되는 시점에서 확실히 면접 부분에서 얻어 갈 수 있는 지식 부분들이 있음.4. 개선할 점 (Problem)문제점 : 현재 정보처리기사 실기 시험이 올해 마지막인데. 이 스터디가 좀 빡세다... ; 구현 부분에서 javascript를 C++로 구현해보고 공부해야 하니까..; 일단 넘어가고 다음에 해야 할련지.. 휴.. 너무 힘들다 하면 그냥 보고 넘어갔다가 다음에 시험 끝나고 하는 방식으로 진행해보는 것도 좋을거 같다..개선이 필요한 프로세스 : 기록을 하려다 보니 시간을 너무 많이 잡는다. 또 구현부분에서 C++로 변환하는 과정에서 4시간 이상을 쏟아 붓는다.. 개선되어야 한다..  5. 다음 단계 (Try)향후 계획: 2주차 때는 좀 가볍게 보고 이후 기록을 진행하는 편으로 해야 겠다... 정보처리기사 실기가 더 중요하다 현재로써 나의 우선순위는 그것이다... 다음 2주차에서 시도할 사항: 기록은 가볍게, 구현 부분 가볍게 C++과 비교하기 (다른 사람의 코드)머릿속으로 그림그리기말로 직접 풀이 해보면서 강의해보기 역할 및 책임: 2주차 3주차 까지 마지막 하는 부분 최대한 간단히 하는 부분과 말로 직접 하면서 내것으로 만들 필요가 있을것 같다. 현재로써는.. 정처기 실기를 1트만에 합격해야 하는 의무가 있다..; 내년 까지 또 기다릴 순 없다.. 6. 기타 의견일주일 동안 학습하며이번 1주차에는 자료구조와 알고리즘 기본,LinkedList, DoubleLinkedList, Stack, Queue, Deque, Hash, 운영체제, 프로세스, 스레드, PCB, 컨텍스트스위칭, 인터럽트 등 처음부터 게임회사 취업시 필요한 면접 내용에 대해 간단히 배울 수 있었다.  -> 연결리스트를 통해 계속해서 이어나가는 점에서 인상깊었다. 아 연결리스트로 스택과 큐, 덱, 해쉬에 응용할 수 있구나 ? 라는 것을 알 수 있었다. 확실히 처음 보는 CS전공지식인데. 감자님의 강의는 정말 간단하고 보기 편하다. 1주차 미션에 대해처음 미션을 보고서 간단한 단답형 또는 서술형을 작성 할 수 있게 되어있었다. 배운 내용에 대한 이해를 위해서 말로써 해본 것들이 떠올랐고, 발표하는 느낌으로 진행했다. 가장 어려웠던 알고리즘 구현부분에서 javascript 작성한 것을 최대한 비슷하게 만들기 위해 노력했었다.미션부분에서 인터럽트에 대해 전에 들어본적은 있었으나. 세부적인 내용에 접근하려고 해보았다. 어떤 알고리즘 자료구조를 사용해봐야할지 고민을 했다. 나는 주력 언어가 C++이라서 C++로 최대한 구현하고자 했는데. STL을 활용하여 , vector 및 구조체 사용을 통해 하거나 STL로 기본적으로 구현할 수 있는 queue가 어떤식으로 사용할 수 있는지 접근해보려고 했다. 하지만. STL로 부족한 부분은 활용만 하고 직접 구현해야 하는 부분도 있었는데. 원리 참고만하고 다른사람의 구현목록을 보고 가져와서 사용하려고 했었던거 같다.그리고 Chatgpt, 뤼튼, Gemini를 사용하여 거짓된 정보를 제거하고 정말 간단한 구현에 초점을 맞췄던거 같다 이후 최적화된 구현방법이 무엇인지 풀이해볼려고 했었다.미션을 좀 이렇게 해볼걸...미션을 하면서 조금 조급한 마음이 들었다. 왜냐하면 지금 정처기 준비에 온 신경이 쏟아져있는데.이 스터디 클럽 때문에,,, 사실... 너무 오랜 시간을 쏟고 있었다...다음 주차 부터는 좀 가볍게 해야겠다. 다시 보는 한이 있더라도 중요한 것 먼저 끝내야 겠다. 하지만 미션 풀이하면서 다시한번더 되새김질 하여서 좋았다. 마음이 조급해지는 것만 조금.. 뭔가 미션에 목숨을 걸게 된다..책임감 때문에,,..?흠... 모르겠다...일단 지금 집중해야 할 것을 집중하자...

알고리즘 · 자료구조알고리즘자료구조워밍업클럽2기발자국CS-발자국cs-발자국감자

Taeho

인프런 워밍업 클럽 - CS 1주차 미션

운영체제while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 } 위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?Interrupt 방식프로그램과 프로세스가 어떻게 다른가요?Program저장장치에 저장된 명령문의 집합체저장 장치만 사용하는 수동적인 존재Process실행중인 프로그램저장장치에 저장된 프로그램이 메모리에 올라갔을 때 프로세스라고 한다.메모리, CPU, I/O 작업을 수행하는 능동적인 존재멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?Multi-Programming메모리에 여러개의 프로세스가 올라온 상태메모리 관점으로 정의Multi-ProcessingCPU 관점으로 정의CPU가 여러 개의 프로세스를 처리하는 것을 의미한다.운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?PCB(Process Control Block)과 CPU Scheduling을 사용해서 프로세스를 관리한다.컨텍스트 스위칭이란 뭔가요?프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태값으로 전환하는 작업Context Switching이 발생할 때 PCB의 내용이 변경된다.프로세스 상태, 프로그램 카운터, 레지스터 정보, 메모리 관련 정보 등이 변경된다.자료구조와 알고리즘여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.선택한 자료구조 : List | HashTable교실의 학생 정보가 항상 일정하다고 생각하지 않기 때문이다.교실에 새로운 학생이 전학을 온다던가 기존에 있던 학생이 전학을 간다고 한다면 고정된 사이즈를 갖고 있는 Array의 경우 삽입/삭제 처리가 어려울 것이라고 생각된다.만일 전학이 빈번하지 않는다고 한다면 Array를 사용하는 편이 더 효율적이라고 생각한다.한명의 학생에게 고유한 학번을 부여하고, 해당 학번에 학생을 매핑해 놓는다고 한다면 가장 성능이 좋을 것이라고 생각한다.여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.선택한 자료구조 : Queue먼저 주문을 한 고객부터 순서대로 주문을 처리해야 하기 때문이다.

알고리즘 · 자료구조워밍업클럽CS전공지식1주차미션

[워밍업 클럽_CS 전공 스터디 2기] 1주차 발자국

자료구조일주일 동안 자료구조에서는 연결리스트, 배열, 스택, 큐, 덱, 해쉬 테이블, 셋에 대하여 학습하였습니다. 일반 연결리스트를 학습할 때는 해당 데이터의 장점에 관해 파악하기가 쉽지 않았습니다. 대부분의 기능을 배열로 쉽게 활용가능하고 배열에 비해 참조와 수정 삭제의 시간 복잡도에서도 큰 장점을 느끼지 못했습니다. 하지만 연결리스트 이후에 이중연결리스트를 구현하면서 연결리스트의 장점을 느낄 수 있었습니다. 해당 자료구조를 통해 queue 자료 구조와 deck 자료 구조에서 삽입, 삭제가 모두 O(1)의 성능으로 처리 되는 것을 배우면서 연결리스트의 장점을 느낄 수 있었습니다.  강사님이 작성해주신 기초 자료구조를 바탕으로 저만의 방식으로 수정하면서 많이 배울 수 있었습니다. 특히 혼자서 작성한후 이를 테스트 할때, console을 활용하는 방식이 불편해 자바스크립트의 테스트 코드를 도입하여 각 자료구조 코드가 수정되어도 테스트 코드를 통해 쉽게 틀린 부분을 찾을 수 있게 보안한 점이 좋았습니다. 해당 테스트 코드를 통해 해쉬테이블에서 key가 중복인 경우 새로운 데이터를 덮어씌우게 수정하거나, set의 경우 숫자 데이터 이외의 문자열, 배열등의 데이터를 저장할 수 있도록 확장한 점이 좋았습니다.  개념 강의를 수강한 이후 구현 강의를 수강하기 전에 필요한 메서드를 결정하고 혼자 생각하면서 자료구조를 작성하는 시간을 가진점이 좋았지만, 시간에 쫓겨 혼자 힘으로 완성하지 못하고 강의를 참고해서 완성한 부분이 아쉬웠습니다. (연결 리스트, 이중 연결 리스트, 해쉬테이블) 다음 주차에는 시간이 오래 걸려도 스스로 자료구조 알고리즘을 완성할 시간을 가져보려 합니다.운영체제운영 체제의 핵심적인 부분을 그림과 쉬운 설명으로 이해하여 핵심적인 개념을 빠르게 익히고 학습하기 좋았습니다. 짧은 시간에 운영체제 개요, 프로세스와 쓰레드, CPU 스케줄링의 핵심을 짚고 넘어갈 수 있었습니다. 해당 강의에서는 정말 핵심을 쉽고 간결하게 짚어주시기 때문에, 해당 강의를 바탕으로 학습 지식을 확장하는 시간이 필요하다고 여겨집니다. 이해하지 못한 부분 혹은 상세한 동작 방식을 알고 싶은 부분에 대해서 보다 더 파고들어가 정리를 하고자 합니다.

[워밍업 클럽_CS 전공 스터디 2기] 1주차 미션

운영체제1. while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?해당 방식은 스킬 사용 여부를 체크 할 때 동안 다른 어떤 작업도 진행을 하지 못합니다. 스킬 사용 여부 확인을 위해 pooling방식이 아닌 인터럽트 방식을 활용해서 스킬 사용 여부를 알려주기 전까지 다른 작업을 처리하고 비동기 적으로 스킬 사용 여부가 확인이 되면 다시금 해당 작업을 전달받아 처리할 수 있도록 합니다. 2. 프로그램과 프로세스의 차이프로그램은 코드 덩어리로 운영체제가 해당 프로그램을 메모리에 적재하여 실행시키기 이전 상태를 의미합니다.프로세스는 프로그램을 실행시켜서 메모리에 적재되고 PCB를 생성하여 CPU 스케줄링으로 인해 관리되고 있는 상태를 의미합니다.3. 멀티 프로그래밍과 멀티 프로세싱멀티 프로그래밍은 메모리에 여러개의 프로세스가 적재될 수 있는 환경을 의미합니다.멀티 프로세싱은 CPU관점으로 여러개의 프로세스를 처리하는 것을 의미합니다. 4. 운영체제는 프로세스를 관리하기 위해 어떤 것을 활용하는가?PCB를 통해 프로세스를 관리합니다. 프로그램이 메모리에 적재되어 프로세스로 실행이 되면 운영체제는 해당 프로세스를 PCB를 통해 관리합니다.PCB는 포인터, 프로세스 상태, 프로세스 ID, 프로그램 카운터, 레지스터 정보, 메모리 관련정보, CPU스케줄링 정보 등을 가지고 있습니다. 5. 컨테스트 스위칭?컨텍스트 스위칭은 CPU스케줄링으로 인하여 하나의 프로세스에서 다른 프로세스로 CPU 할당이 변경될 때 발생합니다. 컨텍스트 스위칭이 발생할 때 PCB에서 프로세스 상태, 프로그램 카운터, 레지스터 정보, 메모리 관련 정보 등이 변경된다. 자료구조와 알고리즘1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.배열을 활용합니다. 학년 별 교실에서 전학 혹은 기타 요인으로 인한 학생 정보를 수정, 삭제해야 하는 경우는 거의 일어나지 않고 학기 초 정해진 학생 정보 그대로 유지되는 경우가 많기 때문에, 정보 참조가 빠른 배열을 사용합니다.  2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요. queue 자료 구조를 사용합니다. queue의 특징은 first in first out 입니다. 즉 들어온 순서대로 데이터를 처리하여 들어온 순서대로 데이터가 나갑니다. 이는 고객의 주문을 받고 순서대로 처리하려는 프로그램의 특징과 같습니다. 

알고리즘 · 자료구조

인프런 워밍업 클럽 스터디 2기 CS 1주차 미션

운영체제1. ```Cwhile(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }```위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다.이 방식은 폴링방식입니다.1초마다 체크하기 때문에 성능에 좋지 않습니다.이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?정답: 인터럽트 방식을 사용하여 입력이 완료되었을 때 신호를 받습니다. 2. 프로그램과 프로세스가 어떻게 다른가요?정답: 프로그램은 저장 장치에 존재하는 실행 파일이고, 프로세스는 현재 메모리 올라가 실행 중인 프로그램을 말합니다. 3. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?정답: 멀티프로그래밍은 메모리에 여러 개의 프로그램을 올려 놓는 것을 말하고, 멀티프로세싱은 그 여러 프로세스들을 돌아가며 모두 실행시키는 걸 말합니다. 4. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?정답: PCB(Process Control Block)를 통해 프로세스를 관리합니다. PCB는 CPU 스케줄링을 원활하게 진행할 수 있도록(멈췄다가 다시 실행할 수 있도록) 프로세스의 다양한 정보를 담고 있습니다.5. 컨텍스트 스위칭이란 뭔가요?정답: 프로세스의 CPU 사용권을 다른 프로세스로 옮기는 작업으로 현재 작업 중인 프로세스의 정보를 PCB에 저장해 보관하고 실행할 프로세스의 PCB를 가져와 그 정보를 참조하여 이어서 실행한다. 자료구조와 알고리즘1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요?이유를 함께 적어주세요.정답: 배열을 사용할 거 같습니다. 한번 반이 배정되면 반 학생이 추가되거나 제거되는 경우가 거의 없고 참조하는 경우가 많을 것이기에 추가 및 삭제에서는 연결 리스트보다 성능이 좋지 않지만 참조에서는 O(1)의 성능을 보이는 배열을 사용하겠습니다.2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.정답: Queue를 사용하겠습니다. 큐는 FIFO 자료구조로 먼저 들어온 게 먼저 나갑니다. 따라서 주문은 순서대로 처리해야하기에 FILO인 Stack보다는 Queue가 더 적절한 거 같습니다.

빠타박스

[인프런 워밍업클럽 2기] CS전공지식_Mission01

운영체제while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다.1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요? 이런 풀링 방식의 경우 계속 매초마다 확인을 하니까 효율이 좋지 못하다.이전에 서버에게 클라이언트에서 로그인 인증 됬는지 처리하기 위해 계속 해서 switch 문에 들락날락 처리 되도록 한적이 있는데. 확실히 삑나간적이 있었다.이럴때 필요한게 인터럽트 인데 일종의 대기상태 라고 생각하면 될 것 같다.CPU는 다른 작업을 실행시키거나 하여 잠시 대기시키고 해당 작업이 완료되는 시점에 신호를 받아 완료 시킨다. 언리얼엔진에서도 비슷하게 조건을 주어 매초마다 주는 Tick 발생을 제어하는 것들이 있는데.상태머신에서도 볼 수 있는 현상이다.조건을 주어 다른 것이 실행되게 하고 입력값이 들어오면 그때서야 실행하는 것이다. 인터럽트도 일정 입력이 들어올 때까지 작동하지 않고 들어오면 인터럽트에 의해 다른 업무를 시키고 그 업무로 들어가게 한다. 해결방법인터럽트 핸들러 : 특정이벤트가 발생했을 때 인터럽트가 발생하도록 처리 CPU는 대기상태에서 벗어나서 해당 이벤트를 즉시 실행상태 플러그 : 인터럽트 핸들러에서 상태 플래그를 설정하고 loop에서 이 플래그를 체크하여 작업을 수행하도록 volatile bool skillActivated = false; void interruptHandler() { skillActivated = true; // 인터럽트 발생시 플래그 } while(1) { if (skillActivated) { skillActivated = false; // 플래그 초기화 } // 다른 작업 수행 }우선 순위 관리를 통해 중요한 이벤트 부터 처리타이머 사용 : 주기적인 작업시 타이머 설정해서 일정 시간마다 인터럽트 처리다용도 입출력(GPIO)핀의 변화를 감지해서 인터럽트 발생등등 2. 프로그램과 프로세스가 어떻게 다른가요?프로그램 명령문의 집합체일종의 실행파일같이 .exe 형태로 이루어짐컴퓨터의 관점에서 저장장치만 사용하는 수동적 존재 프로세스실행중인 프로그램저장장치에서 프로그램이 메모리에 올라간 것메모리도 사용하고 운영체제 CPU 스케줄링에 따라 CPU도 사용됨, 능동적인 존재이다. 3. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티 프로그래밍메모리에 여러개의 프로세스가 올라온 것 멀티 프로세싱CPU가 여러개의 프로세스를 처리하는 것  -> 오늘날 멀티프로세싱 프로그래밍이 전부다 쓰인다.메모리에는 여러개의 프로세스가 올라오는 멀티프로그래밍, 시분할 처리로 CPU가 각각의 프로세스를 짧은 시간동안 교대로 실행하는 멀티프로세싱이 있다. (동시에 실행된다는 개념이 아니다) 4. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?운영체제는 프로세스가 만들어지면 해당 프로세스의 정보를 가지고 있는 PCB를 만든다. 이것은 연결리스트 자료구조 마냥 저장되어있는데. 프로세스가 종료되면 해당 리스트에서 프로세스의 PCB를 제거합니다. 그러면서 연결리스트의 구조는 그대로 유지 합니다. PCB의 구조는포인터프로세스 상태프로세스 ID프로그램 카운터레지스터 정보메모리관련정보CPU스케줄링 정보 등 PCB내부에서 여러개의 동작이 실행되어 운영체제에 의해 관리됩니다.  5. 컨텍스트 스위칭이란 뭔가요? 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행 중인 프로세스를 저장하고 다른 프로세스의 상태값으로 교체는 작업을 - 컨텍스트 스위칭 이라고 한다. 컨텍스트 스위칭은 PCB의 내용이 변경된다.실행중인 프로세스의 작업내용을 PCB에 저장하고 실행될 기존 프로세스의 PCB의 내용대로 CPU가 다시 셋팅 된다.  컨텍스트 스위칭이 발생시 PCB의 변경 값 프로세스 상태프로그램 카운터 : 다음 실행할 명령어 주소레지스터 값 & 메모리관련 정보 : 각종 레지스터의 값 정보 발생 이유 CPU 점유시간이 다 되거나 입출력 요청이 있거나다른 종류의 인터럽트가 있을 때 발생할 때  자료구조와 알고리즘1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.학생 정보를 저장하기 위해 구조체와 벡터를 결합해 사용할 수 있을 것 같다. 구조체는 학생 정보를 표현하고, 벡터는 여러 학생 정보를 동적으로 저장할 수 있다. C++에서는 이러한 것이 STL에 컨테이너로 되어 사용가능하다.사용이유구조체 사용 : 학생 정보를 하나의 단위로 묶어 관리하기 위해 구조체를 사용학생의 이름나이학생ID등의 속성을 쉽게 다룰 수 있다. 벡터 사용 : 벡터는 동적 배열로, 학생 수가 변동 될 수 있는 상황에 유용하다. 학생을 추가하거나 삭제할 때 유연하게 대처가능 하다. #include <iostream> #include <iomanip> #include <string> #include <vector> using namespace std; struct Student { // 기본적으로 구조체는 기본적으로 public string name; int age; string studentId; // 구조체 변수 초기화 Student(string n, int a, string id) : name(n), age(a), studentId(id) {} }; class StudentManager { public: void AddStudent(const string& name, int age, const string& studentId) { vStudents.emplace_back(name, age, studentId); // 객체내 인자만받아 함수 내에서 객체 생성해 삽입 - emplace_back 생성자 한번만 호출 } /*width() 또는 iomanip/ setw()로 정리*/ void DisplayStudents() const { for (const auto& student : vStudents) { cout << "| " << "Name: " << student.name << " |" << setw(6) << "Age: " << student.age << " |" << setw(13) << "Student ID: " << student.studentId << " |" << endl; } } private: // 공개가 필요없는 vector<Student> vStudents; }; int main() { StudentManager manager; manager.AddStudent("홍길동", 20, "20230001"); manager.AddStudent("인프런", 21, "20230002"); manager.AddStudent("감자 ", 25, "20230003"); cout << "학생정보: " << endl; manager.DisplayStudents(); return 0; } 2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.큐(Queue)자료구조를 사용해서 FIFO방식으로 데이터를 처리하므로 주문이 들어온 순서대로 처리할 수 있습니다. STL에 queue를 사용할 수 있습니다.사용이유FIFO : 선입선출 방식, 주문이 들어온 순서대로 처리할 수 있어서 주문관리에 적합합니다. 고객 대기 시간을 최소화할 수 있습니다. (단. 끼어들기 금지)간편한 관리 : C++STL 제공하기에 복잡한 구현없이 간편하게 큐를 관리 확장성 : 새로운 주문 추가또는 기존 주문을 처리하는 과정이 명확해서 확장및 유지보수 용이 /*여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요. */ #include<iostream> #include<queue> #include<string> using namespace std; typedef struct Order { string customerName; // 고객이름 string item; // 주문한 물건 int quantity; // 주문 수량 int price; // 주문 가격 int Sum; // 주문 총 가격 // 각 변수 초기화 Order(string name, string itm, int qty, int pri, int sum) : customerName(name), item(itm), quantity(qty), price(pri), Sum(sum) {} } Orderinfo; class OrderManager { public: void AddOrder(const string& name, const string& item, int quantity, int price, int Sum) { Sum = (price * quantity); orders.emplace(name, item, quantity, price, Sum); // 새로운 주문 객체를 큐에 추가 } void ProcessOrder() // 주문 처리 { // 큐에 주문이 있는가? if (!orders.empty()) { Order currentOrder = orders.front(); // 현재 처리할 주문을 큐의 앞에서 가져온다. orders.pop(); // 주문을 큐에서 제거 // 처리 중인 주문 정보 출력 cout << "Processing order for |"; cout << currentOrder.customerName << ": " << currentOrder.item << ": " << currentOrder.quantity << " | " << currentOrder.price << " | " << currentOrder.Sum << " | " << endl; } else { cout << "No orders to process. " << endl; // 주문이 없을 때 } } // 큐에 주문이 있는지 확인 bool bfHasOrders() const { return !orders.empty(); // 큐가 비어있지 않으면 true반환 } private: // 주문을 저장할 큐 queue<Order> orders; }; int main() { OrderManager manager; // 주문 추가 manager.AddOrder("김감자", "토마토", 2, 3000, NULL); manager.AddOrder("인프런", "바나나", 1, 2000, NULL); while (manager.bfHasOrders()) { manager.ProcessOrder(); // 주문처리 } return 0; }

cs-미션인프런워밍업클럽2기빠타박스인프런cs자료구조알고리즘운영체제

하얀종이개발자

인프런 워밍업 클럽 2기 - CS전공지식 스터디 미션 01 입니다.

CS전공지식 미션 1 운영체제while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?스스로가 체크하지 않고, 플레이어가 스킬을 사용하면 스킬이 활성화되었다고 알려주는 인터럽트 방식을 사용할 것 같습니다. 인터럽트 방식은 다른 작업을 수행하고 있다가 하고있는 동작을 멈추고 인터럽트 서비스 루틴을 실행하여 그 인터럽트를 처리하는 방식입니다. 프로그램과 프로세스가 어떻게 다른가요?프로그램은 저장장치에 저장된 명령어의 집합으로 이루어진 애플리케이션이나 .exe 실행파일을 말하는데, 어떠한 트리거에 의해 프로그램이 저장장치에서 메모리에 올라가 운영체제 관리하에 놓이면 프로세스라고 합니다. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티프로그래밍은 메모리에 여러개의 애플리케이션이 올라가는 것을 말하고, 멀티 프로세싱은 CPU가 여러개의 프로세스를 처리하는 것을 말합니다. 메모리의 관점에서 여러개를 처리하느냐, CPU의 관점에서 여러개를 처리하느냐로 나눌 수 있습니다. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?운영체제는 프로세스를 관리하기 위해 프로세스 컨트롤 블록(PCB)를 활용합니다. PCB는 각 프로그램이 메모리에 올라오면 각각 생성되어 연결리스트로 연결되어 저장됩니다. 각 PCB는 프로세스의 식별자, 프로그램카운터, 레지스터 정보등을 담고 있습니다. CPU가 여러개의 프로세스를 번갈아가면서 처리할때 작업중이던 프로세스는 PCB의 정보를 업데이트하고 다른 프로세스는 PCB에서 정보를 읽어서 명령어를 실행합니다. 컨텍스트 스위칭이란 뭔가요?컨텍스트 스위칭은 CPU가 스케쥴링에 의한 시분할 처리로 프로세스를 실행하는 중에 다른 프로세스를 실행하기위해 실행중인 프로세스를 잠시 저장하고 다른 프로세스의 상태값으로 교체하는 작업을 말합니다. 이때 기존 실행중이던 프로세스의 작업내용을 PCB에 저장하고, 실행될 프로세스는 PCB에서 읽어와 CPU에 프로그램카운터 등 레지스터값이 세팅됩니다. 자료구조와 알고리즘여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.학생정보를 저장하기 위해서는 해시 테이블구조를 선택하겠습니다. 학생정보는학생을 식별할 수 있어야하고 학생의 여러 속성정보들을 가져야하기 때문에 학생의 식별자를 key로 가지고 학생의 정보를 value로 가지고 있으면 학생을 검색하는데에도 빠르고 O(1), 데이터를 추가하는데도 용이하기 때문입니다. 다만 해시테이블 구조는 메모리가 많이 필요하기때문에 유의해야합니다.자바 코드로 예시를 작성해봤습니다. public class Student { String name; // 이름 int age; // 나이 String major; // 전공 int grade; // 학년 // 생성자 public Student(String name, int age, String major, int grade) { this.name = name; this.age = age; this.major = major; this.grade = grade; } public static void main(String[] args) { // HashMap 생성 (키는 학생 고유 번호, 값은 학생 정보) HashMap<Integer, Student> studentMap = new HashMap<>(); // 학생 정보 추가 studentMap.put(101, new Student("김미소", 20, "컴퓨터공학", 2)); studentMap.put(102, new Student("이고은", 21, "인문학", 3)); studentMap.put(103, new Student("박현성", 19, "경영학", 1)); // 모든 학생 정보 출력 for (Integer id : studentMap.keySet()) { System.out.println("학생 고유 번호: " + id + ", " + studentMap.get(id)); } } }  여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.주문은 들어온 순서대로 처리되기 때문에 선입선출(First In First Out)방식인 구조인 큐를 선택하겠습니다. 큐는 가장 먼저 들어온 주문이 먼저 처리되고 제거되기 때문에 순서대로 처리하는 방식에 적합합니다.

알고리즘 · 자료구조그림으로쉽게배우는기초컴퓨터과학(CS)감자CS전공지식인프런워밍업클럽

seongmin kim

인프런 워밍업 클럽 CS 2기 - 1주차 미션

운영체제1.위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?-> 폴링방식의 단점을 해결한 인터럽트 방식을 사용한다. 인터럽트는 입출력 관리자에게 입출력 명령을 내리는 것까지는 폴링 방식과 같지만, 명령을 내린 후에 CPU가 다른 작업을 계속한다. 이에 따라, 인터럽트는 비동기적으로 동작하므로 성능에 이점이 있다. 2. 프로그램과 프로세스가 어떻게 다른가요?-> 프로그램은 하드디스크와 같은 저장 장치에 저장된 명령문의 집합체이며, 프로세스는 실행 중인 프로그램이다.-> 프로세스는 메모리도 사용하고, 운영체제의 CPU스케줄링 알고리즘에 따라서 CPU도 사용하며, 필요에 따라 입력과 출력을 하기 때문에 능동적이지만, 프로그램은 하드디스크(저장 장치)만 사용하므로 수동적이다. 3. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?-> 멀티프로그래밍: 메모리에 여러 개의 프로세스가 올라온 것-> 멀티프로세싱: CPU가 여러 개의 프로세스를 처리하는 것 4. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?-> PCB(Process Control Block) 5. 컨텍스트 스위칭이란 뭔가요?-> 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행 중인 프로세스의 상태를 저장하고 다른 프로세스의 상태 값으로 교체하는 작업자료구조와 알고리즘1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.-> 학생 수가 적으면 배열을 사용한다. 다만, 학생의 수가 많거나 변동될 경우가 있다면 배열보다는 해시테이블을 사용한다. 해시테이블은 키(key)와 밸류(value)로 구성되어 있고, 키(key)만 알면 밸류(value)에 O(1) 성능으로 읽을 수 있다. 2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.-> 주문이 들어온 순서대로 처리하려면 큐를 선택한다. 큐는 선입선출(FIFO: First In First Out) 구조이므로, 들어온 순서대로 처리되어 적합하다.

알고리즘 · 자료구조워밍업클럽미션

히데

CS 전공지식 스터디 미션 01

CS 전공지식 스터디 미션 01 운영체제폴링방식을 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?인터럽트: CPU가 입출력 관리자에게 명령을 내리고 하던 일을 계속함(지속적으로 체크할 필요가 없음) - 입출력 관리자는 입출력이 완료됐을 때 CPU에게 신호를 줌 - ISR(인터럽트 서비스 루틴 - 비동기적으로 동작함, 성능이 좋음)프로그램과 프로세스가 어떻게 다른가요?프로그램: 저장장치에 저장된 명령문의 집합체 (.exe)프로세스: 실행 중인 프로그램 (저장된 프로그램이 메모리에 올라갔을 때의 상태) - 능동적인 존재멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티프로그래밍: 메모리에 여러 개 프로그램이 올라온 것멀티프로세싱: CPU 관점으로 정의, CPU가 여러 개의 프로세스를 처리하는 것동시에 이용한다 (멀티프로그래밍으로 프로그램을 여러 개 올리고, 멀티프로세싱을 이용해 여러 개의 프로세스를 처리하게 됨)운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?PCB(Process Control Blcok) 연결리스트 구조, 프로세스가 만들어지면 해당 프로세스의 정보를 가지고 있는 PCB가 생성컨텍스트 스위칭이란 뭔가요?Context Switching하나의 프로세스를 실행하는 도중에 다른 프로세스를 실행하기 위해 다른 프로세스로 전환(인터럽트) 원래 실행 중인 작업을 PCB에 저장하고 실행될 프로세스의 상태대로 다시 CPU 세팅 자료구조 & 알고리즘여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.배열. 학생의 정보를 저장하고 인덱스로 접근이 가능하여 참조가 쉬움.여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.들어온 순서대로 처리해야 하기 때문에, FIFO 구조인 큐를 선택.

알고리즘 · 자료구조

지민철

인프런 워밍업 클럽 스터디 2기 CS 1주차 과제

운영체제 1.while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식을 폴링방식입니다.1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?답 : 인터럽트 프로그램과 프로세스가 어떻게 다른가요?답 : 간단하게는 프로그램은 그냥 코드 덩어리에 가깝고 그것을 실행하면 그것이 프로세스이다.자세히는 프로그램은 저장장치에 있으며 작동하지 않는 파일과 같은 수동적인 존재이다, 그 프로그램이 RAM으로 들어가서 실행되면 CPU도 사용하고 입출력 작업을 하여서 능동적인 존재가 된다. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?답 : 멀티프로그래밍은 메모리에 여러개의 프로세스를 올린 것을 뜻하고 멀티프로세싱은 CPU가 메모리에 있는 여러개의 프로세스를 실행하는 것을 뜻한다. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?답 : 운영체제는 프로세스를 관리하기 위해 스케쥴러, PCB, 컨택스트 스위칭, 인터럽트 등을 사용한다.PCB : 프로세스의 중요한 정보를 저장하는 데이터 구조, 프로세스 ID, 상태, 우선순위 등이 있다. 컨텍스트 스위칭이란 뭔가요? 답 : 콘텍스트 스위칭이란 여러개의 프로세스를 실행하는 작업을 말한다. 자세히는 현재 1,2번 프로세스를 실행하고 있다고 가정하였을 때, 일단 CPU에서 1번 프로세스를 실행한다. 언젠가 1번 프로세스가 CPU를 사용하는 시간이 정해진 시간을 초과하면 1번 프로세스의 PCB에 현재 CPU 세팅값을 저장한다, 그 다음 2번 프로세스의 PCB에 저장되어있던 세팅값을 CPU에 넣는다. 그러면 큰 준비 없이 바로 정지해있던 2번 프로세스를 실행 가능하다. 그 후 2번 프로세스도 정해진 사용 시간을 초과하면 PCB에 CPU세팅 값을 저장한 후 1번 PCB값을 가져온다. 이 작업을 컨텍스트 스위칭이라고 한다. 자료구조와 알고리즘여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.답 : 배열이유 : 일반적으로 교실의 학생은 자주 사라지거나 추가되지 않으며 조건이 한 교실이기 때문에 길이가 엄청난것도 아니어서 배열이 더 좋을것이다. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.답 : 큐이유 : 주문은 먼저(first) 들어온(in) 순서대로 먼저(first) 나가는(out) 구조이니 FIFO이다. FIFO를 사용 가능한 구조는 덱과 큐 2개인데 우리는 FIFO말고는 필요가 없으므로 큐를 사용하는 것이 더 좋을 것 같다.

마소캠퍼스

[Gen AI 인사이트] GPT 성능을 극대화하는 프롬프트 엔지니어링 전략 (2)

똑똑하게 업무를 처리하는 방법, 마소캠퍼스가 알려드릴게요!최신 AI 기술로 더욱 효율적이고 스마트하게 일해보세요. GPT의 성능을 극대화하려면 어떻게 해야 할까요?오늘은 프롬프트 엔지니어링을 통해AI를 더욱 스마트하게 활용할 수 있는 방법을 알아봅니다.프롬프트 엔지니어링이란?프롬프트 엔지니어링은 GPT와 같은 생성형 AI 모델에서원하는 결과를 얻기 위해 사용되는 전략입니다.이 기술을 통해 간단한 지침부터 복잡한 작업까지효과적으로 처리할 수 있어요.전략 2: 맥락 프롬프트 엔지니어링AI 모델이 혼동하지 않도록 정확한 맥락을 제공하는 것이 중요해요.신뢰할 수 있는 참조 텍스트를 제공하면모델이 더 정확한 답변을 생성할 수 있습니다​.참조 텍스트로 응답하도록 지시하기모델에게 질문에 대한 텍스트 자료를 제공하고,이를 바탕으로 답변하도록 지시하면 더욱 신뢰성 있는 결과를 얻을 수 있습니다.참조 텍스트의 인용으로 응답 요청특정 질문에 답할 때 관련 텍스트를 인용하여응답을 보완하는 방법을 사용해 보세요.이 방법은 인덱싱이나 후속 작업에서도 유용합니다​.전략 3: 하위 작업으로 분할하기복잡한 작업은 단순한 작업으로 나누는 것이 효과적입니다.복잡한 시스템을 작은 모듈로 분할하여 처리하면오류를 줄이고 작업 효율을 높일 수 있어요​.사용자 의도와 관련있는 지시 식별사용자 의도에 맞는 지시를 효율적으로 내리기 위해다양한 사례를 분류하고 적합한 지시를 식별하는 방법을 사용하세요.이렇게 하면 비용 절감과 정확도 향상이 가능합니다​. 긴 대화 요약하기대화가 길어질 경우, 주요 포인트를 요약하여중요한 내용만 남기는 것이 중요해요.요약된 텍스트로도 충분한 맥락을 제공할 수 있습니다​.프롬프트 엔지니어링을 통해 GPT를 더 잘 활용해 보세요!업무 생산성이 크게 향상될 거예요.또한, 단계별로 작업을 나누면 오류를 줄이고 더 나은 결과를 얻을 수 있습니다.📌 관련 강의 <Chat GPT 마스터 가이드-내 연봉의 숫자가 달라지는 마법 도구>쉽고 확실한, 최고의 GPT 강의!고급 활용법까지 단계별로 배우기만 하면 내 연봉의 숫자가 달라집니다.>> https://bit.ly/4dmQy3f << 

AI · ChatGPT 활용GPT활용AI전략업무효율화IT전략생성형AIAI트렌드챗지피티기술혁신AI기술프로그래밍기초

Tinys

🎁 이벤트 참여 방법 (입문강의)

🎁 이벤트 참여 방법 (입문강의) *기간 : 2024.11.17 ~ 2024.12.15*종류선착순 이벤트- 증정 상품 : 30% 할인쿠폰- 참여 대상 : 누구나- 참여 방법 : 선착순 쿠폰 입력- 쿠폰 코드 : 나 혼자만 블렌더수능 이벤트- 증정 상품 : 50% 할인쿠폰- 참여 대상 : 수험생- 참여 방법 : 제 이메일로 중요한 개인정보는 가리고, 주민등록증(학생증)과 수험증을 찍어서 보내주세요! - 당첨 발표 : 매주 일요일, 쿠폰과 함께, 개별 메일 발송수강평 이벤트- 증정 상품 : 스타벅스 아메리카노 기프티콘- 참여 대상 : 입문강의 수강생- 참여 방법 : 정성을 담아 솔직한 수강평을 남겨주세요!- 당첨 발표 : 매주 일요일, 5명에게 '수강평 이벤트 당첨자' 라고 댓글 달아드려요! (총20명)(1) 11월 24일 : (당첨자 업데이트 예정) (2) 12월 1일 : (당첨자 업데이트 예정) (3) 12월 8일 : (당첨자 업데이트 예정) (4) 12월 15일 : (당첨자 업데이트 예정) - 주의 사항 : 수강평 작성 시점의 진도율이 표시되어 변하지 않으니 주의해 주세요! (작성 시점이 꼭 100% 수강이 아니어도 괜찮지만, 0% 수강은 제외됩니다!)- 참고 사항 : 수강평 작성이 어려운 분들을 위한 가이드(1) 강의를 듣기 전, 나의 목표는?(2) 강의를 듣고, 성장했다고 느끼는 점은?(3) 강의를 들고, 좋았던 점은?(4) 강의를 듣고, 아쉬웠던 점은?(5) 예비 수강생에게 어떤 부분이 도움될지?100% 완강 이벤트- 증정 상품 : 1:1 멘토링권- 참여 대상 : 입문강의 수강생- 참여 방법 : 강의를 끝까지 수강하고, 직접 만든 작품을 댓글로 사진공유 해주세요!- 당첨 발표 : 12월 15일, 우수 수강생 3명에게 '100% 완강 이벤트 당첨자' 라고 댓글 달아드린 후, 개별 메일 발송- 주의 사항 : 공정한 심사를 위해, 당첨자 분들의 블렌더 수강 파일을 받을 예정이에요!(실습 파일 속, 제가 만든 모델링은, 저만 아는 표시를 숨겨뒀어요!😱 그러니 직접 만든 작품으로 공유하는 게 좋겠죠?!)- 참고 사항 : 댓글 참고 (총 7개의 사진, 용량 30MB 미만)(1) 스크린샷 가능 : 치킨집, 게임 아이템, 게임 맵, 모디파이어, 로봇(2) 렌더링만 가능 : 밝은 분위기, 어두운 분위기

2024-11-19 일간회고

#일간회고어제는 백준 문제를 위주로 풀었습니다.괄호 유형의 스택 문제작성 이유: 엣지 케이스에서 실수가 많았습니다.알고리즘 문제를 풀 때 괄호와 관련된 문제들을 풀 때 스택을 사용하는 방법은 많이 알려져 있습니다.그런데 저는 괄호 및 스택 관련 문제들을 풀 떄마다 엣지 케이스가 있으면 잔실수가 많이 나와서, 정확하게 푸는 요령을 정리하게 되었습니다.나만의 요령: 트리도 같이 연관지어 생각하기 #스택 #트리 #DFS괄호 문제가 나올 때 스택을 사용하는 것은 잘 알려져 있습니다.여기서 한 발 더 나아가, 괄호 텍스트를 가지고 대응되는 트리 구조를 직관적으로 유추할 수 있습니다.예를 들어(())()의 경우, root -> a -> b; root -> c의 트리 구조와 대응됩니다.여기서 괄호 문자열을 순회하는 것은 이 트리 구조를 DFS 탐색하는 것에 비유해볼 수 있습니다.예를 들어 (())()의 각 문자열을 순회하는 것은 트리 구조를 다음과 같이 탐색하는 것과 대응됩니다.( - root -> a( - a -> b) - b -> a) - a -> root( - root -> c) - c -> root저는 개인적으로 엣지 케이스가 있는 등 문제가 복잡한 경우 다음과 같이 문제를 쪼개는 것이 도움이 되었습니다.트리를 순회하면서 문제를 해결하는 알고리즘을 구상한다.구상한 알고리즘을 괄호 순회로 옮긴다.혹시 괄호 문제 말고도 일반적인 스택 유형 문제에 적용이 되는지 한 번 알아보아야겠습니다.

일간회고알고리즘스택트리DFS

EKS 1.29 -> 1.30 issuer_url error Fix

EKS 1.29 -> 1.30 로 테라폼으로 업그레이드 할 때 아래의 에러가 날 수 있습니다.$ terraform plan -var-file=.auto.tfvars ╷ │ Error: Missing required argument │ │ with module.eks.aws_eks_identity_provider_config.this["sts"], │ on .terraform/modules/eks/main.tf line 588, in resource "aws_eks_identity_provider_config" "this": │ 588: issuer_url = try(each.value.issuer_url, local.idpc_issuer_url) │ │ The argument "oidc.0.issuer_url" is required, but no definition was found. output "oidc_issuer_url" { value = module.eks.cluster_oidc_issuer_url이런 에러가 나는 1.29 버전의 테라폼 스크립트는 다음과 같습니다.module "eks" { source = "terraform-aws-modules/eks/aws" version = "~> 20.0" cluster_name = local.name cluster_version = "1.30" # => 30 cluster_endpoint_private_access = true cluster_endpoint_public_access = true create_cloudwatch_log_group = false ~~ cluster_identity_providers = { sts = { client_id = "sts.amazonaws.com" } } 즉, cluster_identity_providers 에 issuer_url이 누락되었다는 에러로 아래와 같이 값을 얻어낼 수 있습니다.$ aws eks describe-cluster --name topzone-k8s --region ap-northeast-2 --query "cluster.identity.oidc.issuer" --output text그 값을 테라폼에 적용한 후에 cluster_identity_providers = { sts = { client_id = "sts.amazonaws.com" issuer_url = "https://oidc.eks.ap-northeast-2.amazonaws.com/id/1907C9BCD0E80760BB636DAC6383031A" } } 다시 apply하면 EKS과 node_group 버전 뿐 아니라 Add-on 도 자동으로 아래와 같이 업그레이드 됩니다.terraform apply -var-file=.auto.tfvars -auto-approve ~ cluster_addons = { ~ coredns = { ~ addon_version = "v1.11.1-eksbuild.4" -> "v1.11.1-eksbuild.8" id = "topzone-k8s:coredns" tags = { application = "topzone-k8s" environment = "prod" } # (14 unchanged attributes hidden) } ~ kube-proxy = { ~ addon_version = "v1.29.0-eksbuild.1" -> "v1.30.0-eksbuild.3" id = "topzone-k8s:kube-proxy" tags = { application = "topzone-k8s" environment = "prod" } # (14 unchanged attributes hidden) } ~ vpc-cni = { ~ addon_version = "v1.16.0-eksbuild.1" -> "v1.18.1-eksbuild.3" id = "topzone-k8s:vpc-cni" tags = { application = "topzone-k8s" environment = "prod" } # (14 unchanged attributes hidden) }  

계획을 짤 때의 불안과 해소 과정

계획을 작성할 때의 불안과 작은 계획을 통한 해소개인적으로 하지 않은 일에 대한 계획을 작성하려고 하면 불안감이 밀려온다.특히나 트리 구조를 띄고 있는 일들에 대해서 계획을 완벽히 작성하려면 꼬리에 꼬리를 무는 계획들이 펼쳐진다.그래서 모든 노드를 탐색하는 것이 적어도 내게는 굉장히 큰 일이고 내가 스트레스를 받는 이유 중 하나이다.이 문제를 해결하기 위해 'Getting Things Done'이라는 책을 읽었고, 아직 책의 모든 부분을 적용하지는 못했지만 중요한 핵심 원리들을 실생활에 적용해보려고 하고 있다.제일 도움이 되었던 핵심 원리들은 다음과 같다.모든 할 일을 머릿속에 두지 않고 기록해놓기, 왜냐하면 안 그러면 계속 신경쓰이니까.계획을 세우는 일도 할 일로 생각하기다음 할 일을 정하는데 고민하지 않기또한, 책과 별도로 트리 구조의 일을 계획하며 탐색할 때 당장 필요한 노드의 자식만 탐색하고, 나머지 노드들의 경우 "노드 XX 계획 세우기"를 계획에 추가함으로써 게으르게 탐색하는 것이 도움이 되었다.예를 들어 A/B/C, A/B/D, A/X/Y, A/Z/W, A/Z/V라는 일을 해야 하면 다음과 같은 식이다.먼저 A를 탐색해서 B 계획, X 계획, Z 계획이라는 일들을 프로젝트에 추가한다.그 중에서 당장 필요한 B를 탐색하면서 C 계획, D 계획이라는 일들을 프로젝트에 추가한다.그 중에서 당장 필요한 C를 실행한다.이 방법에 내게 특히 도움이 되었던 이유는 계획을 세우는 일도 내게 부담스럽기 때문에, 최대한 잘게 쪼개는 것이 이 부담감을 더는데 도움이 되었기 때문이다.계획 세우기에서 개선이 필요한 일들이 있다.다음 할 일 정하기: 다음의 할 일이 상황에 따라 유연하게 바뀌어야 할 일이 많은데, Inbox를 제대로 설정하지 않아서 다음 할 일이 뭔지 우물쭈물 한 부분들이 많다는 것이다.습관 만들기: 불규칙적으로 일이 몰아칠 때 특히 효과적으로 보이는 시스템이지만, 나는 규칙적인 습관도 많이 만들고 싶기에 할 일을 배분할 때 부담감을 느끼지 않으면서 습관을 만들 수 있는 방법에 대해서 생각해보아야겠다. 

계획성장일기

새싹(SeSAC)겨울

[서울경제진흥원] 청년취업사관학교 새싹(SeSAC) 겨울특강❄️ 교육생 모집 ~11/24

교육비 전액 무료!!평균취업률 75% 강남구 학여울역 역세권 교육시설!   "미래전략산업을 이끌어 갈"서울시 청년취업사관학교❄새싹(SeSAC) 겨울특강❄ 교육생을 모집합니다!​청년취업사관학교? 그게 뭔가요?출처 입력청년취업사관학교 새싹(SeSAC)은 서울시와 서울경제진흥원이 운영하는 혁신인재양성사업으로,전공에 관계없이 미취업 청년을 대상으로 4차 산업 분야 관련 실무 교육을 무료로 제공하는 프로그램입니다.​겨울특강에서는 <임베디드SW, 빅데이터, 앱, AI, 에듀테크> 5개 분야 직무 취업을 희망하는 청년을 대상으로11월 24일까지(과정별 상이) 교육생을 모집하고 있습니다!​​누가 언제까지 신청할 수 있나요?출처 입력1) 모집대상▷ 만 15세 이상 서울 거주/거소 구직자 중 수료 후 취업을 희망하시는분▷ 학습에 대한 의지가 있으신 분​* 단, 고용보험 가입자(재직자), 사업자등록자 소지자는 신청 불가(개강일 기준, 과정별 상이)* 내일배움카드 유무와 상관없이 수강신청 가능​​2) 모집기간​■ 교육기간: 2024. 12. 9. ~ 2025. 6. (과정별 상이, 상단 포스터 참조)■ 모집기간: ~ 11/24 (과정별 상이)​🌱 HMG 모빌리티 SW 개발자 데뷔 과정(~ 11/17)※ 우수 교육생 현대자동차그룹 계열사 인턴 연계​🌱 에듀테크 프로덕트 매니저(PM) 주니어 양성과정 (~ 11/17)※ 우수 교육생 천재교육 정규직 채용 연계​🌱 빅데이터 분석 기반의 반도체 공정 디바이스 제어 SW 개발자 데뷔 과정(~ 11/24)​🌱 코틀린 Jetpack Compose 기반의 안드로이드 개발자 과정(~ 11/24)​🌱 Python을 활용한 데이터 분석 & AI 서비스 개발(~ 11/24)​ ■ 상세보기: (링크참조)꿈꾸는 개발자 데뷔코스, 새싹‘새싹’은 싹을 틔우기 위해 더 높은 곳을 향해 도전하고 한 단계 성장하여 기업과의 연결, 새로움을 추구하는 인재들의 공간입니다.sesac.seoul.kr  어떤 혜택이 있나요?☑ 교육비 전액 무료 (예치금 최대 20만원 납부, 수료 후 반환)☑ 잡코디 상주 1:1 맞춤 코칭☑ 팀 프로젝트 포트폴리오 지원☑ 매칭데이 교육생-기업 밋업☑ 러닝메이트 그룹스터디 지원​이외에도 교육기간 점심 식대 제공 / 쾌적한 자습공간 및 학습라운지 자유이용 / 동문회 및 커뮤니티 참여 등다양한 혜택이 팡팡!​어떻게 신청하나요?새싹 홈페이지(sesac.seoul.kr)에서 아래 두 단계 모두 진행!​1) 회원가입 후 <겨울특강>에서 원하는 과정 클릭하여 수강신청 하기2) [마이페이지] 내 자기소개서(구글폼 및 설문지) 작성 후 제출​   🚩교육장소: SETEC 컨벤션홀 3층(지하철 3호선 학여울역 도보 1분)📞문의: 02-6249-1603~4 SETEC서울특별시 강남구 남부순환로 3104 SETEC  

커리어 · 자기계발 기타AI개발자SW국비지원교육청년취업사관학교에듀테크빅데이터앱개발AI개발코딩

ailen22

인프런 워밍업 클럽 2기 후기 - 백엔드 프로젝트(Kotlin, Spring)

인프런 워밍업 클럽 0기에서 좋은 지식을 쌓고 오랜만에 워밍업 클럽 2기를 시작한다는 소식을 듣고 살펴보니 커리큘럼과 강의들이 다 재편성되어서 바로 신청했습니다. 두 개의 강의를 신청하기엔 진도를 따라가는데 급급할 것 같아서 가장 듣고 싶었던 백엔드 프로젝트를 신청하게 되었는데Kotlin을 한번도 사용해보지 않아서 약간의 두려움이 있었습니다. 그래도 저번 0기에서 들었던 부분과 겹치는 부분이 있어서 좋았지만 대부분 새로운 내용을 학습하는데 시간이 걸렸고 항상 만족하는 부분은 다른 사람의 코딩을 보면서 ' 아, 이런 생각을 할 수 도 있구나. ' 하는 부분이였습니다.공부할때는 항상 너무 어렵고 힘들다가도 한 번 완주를 하면 알아듣는 부분이 늘어가는 성취감이 쌓이는 재미가 있습니다. 중간에 포기하고 그냥 듣지말까 하다가도 하루에 정해진 강의를 따라가다보면 꼭 얻는게 있으니 다들 꼭 완주는 하셨으면 좋겠습니다!항상 만족하고 얻어가는게 많은 인프런 워밍업 클럽!2기도 너무 만족스럽게 끝을 내게 되었습니다. 아쉬운 부분도 많지만 완주를 하면서 뿌듯함과 또 보너스 잎도 들어오니 항상 재밌고 만족스럽게 듣고 있습니다. 더욱 성장해가는 개발자를 위해 화이팅!! 

인프런인프런워밍업클럽스터디2기

한지연

[인프런 워밍업 클럽 스터디2기] 프로덕트 디자인 후기

인프런 워밍업 클럽을 참여하게 된 계기현재 작업 중인 프로젝트에 디자인 시스템을 적용해야 해서 관련 강의, 정보를 찾고 있는 상황이었는데,마침 메일로 인프런 워밍업 클럽 스터디 광고가 왔었고 나에게 딱 맞는 강의와 프로그램이라고 생각이 들어서바로 수강 신청하게 되었다.워밍업 클럽에 참가하는 데에 따로 참가 비용은 없고 연계된 강의를 구매하면 참가신청을 할 수 있었다!게다가 워밍업 클럽 참가 시 강의 할인 쿠폰도 적용 가능해서 합리적인 가격에 강의를 구매할 수 있었습니다 😄 강의를 들으면서..평소에 작업을 XD로 작업하다가 최근에 피그마로 갈아타게 됐는데 기능은 비슷하지만 단축키라던가 상세한 기능, UI는 다르다 보니 피그마로 작업하는 게 조금 감을 잡기 힘들었다. 특히 컴포넌트를 어떻게 활용해야할지 몰라서 항상 작업할 때마다 동일한 레이아웃과 컬러를 사용하는 요소여도 하나하나 만들다 보니 매번 시간도 많이 들고 번거로웠었는데 이번 강의를 수강하면서 컴포넌트 활용법에 대해서도 마스터하게 되었고, 새로운 UI와 배리어블이라는 기능에 대해서도 완벽 적응할 수 있었다. 워밍업 클럽 후기4주간 빡빡한 커리큘럼과 미션을 따라가느라 매일매일 예상했던 시간보다 많은 시간을 쏟아부어야 해서 조금 벅찬 감이 없지 않아 있었지만..😅그래도 혼자서 인터넷 강의를 들으면 자꾸 학습을 미루게 되고 강의에 포함된 실습도 안 하게 되는 경향이 있었는데인프런 워밍업 클럽을 통해 이를 극복할 수 있었다.실시간으로 강사님과 피드백을 주고받고 다른 수강생분들이 미션을 빠르게 제출하는 것을 보면서'나도 미션을 어서 끝내고 제출해야겠다!'는 동기부여가 강하게 돼서 4주라는 기간 동안 포기하지 않고 무사히 완주하였다.만약 다음에도 워밍업 클럽이 진행하게 된다면 꼭 3기도 참여하고 싶다!!강의와 스터디 모두 좋은 경험이었기 때문에 주변 사람들에게도 이런 고민이 있으면 한번 참여해보라고 추천하고 있다4주간 원활한 진행을 위해 고생하신 워밍업 클럽 운영진분들과 코치님께 너무 감사하다는 말씀드리고 싶습니다.감사합니다!! 🙇‍♂🙇‍♂  

UX/UI인프런인프런워밍업클럽스터디2기프로덕트디자인후기

suover

인프런 워밍업 클럽 스터디 2기 - 백엔드 프로젝트 후기

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기강의와 함께한 인프런 워밍업 클럽 스터디 2기 - 백엔드 프로젝트 (Kotlin, Spring Boot) 후기 입니다. 소개인프런 워밍업 클럽 스터디 2기를 마무리하며, 한 달 동안 진행된 백엔드 프로젝트와 함께한 학습 여정을 회고해보고자 합니다. 이번 스터디는 Kotlin과 Spring Boot를 활용해 실습 중심의 백엔드 개발 프로젝트를 진행하면서, 많은 성장을 경험할 수 있었습니다. 매주 주어진 미션을 해결하고 강의를 수강하며 그 과정에서 직면했던 도전과 성공, 그리고 배움을 함께 나누겠습니다. 1주차: 웹 개발의 기본과 레이어드 아키텍처의 이해1주차는 Spring Boot를 기반으로 한 웹 개발의 기본 개념을 익히고, MVC 패턴과 레이어드 아키텍처를 학습하는 데 집중했습니다. 웹 서비스의 구조와 클라이언트, 서버, 데이터베이스 간의 상호작용을 이해하며, 클라이언트와 서버 간의 데이터 흐름을 REST API의 개념으로 체계화할 수 있었습니다. MVC 패턴의 중요성과 레이어드 아키텍처의 역할을 명확히 이해하면서, 어떻게 하면 유지보수성이 높은 코드를 작성할 수 있을지 깊이 고민하는 시간이 되었습니다.개인적으로 가장 보람찼던 부분은 이론 학습 후 즉시 실습을 통해 프로젝트에 적용해보면서, 개념을 구체화하고 몸에 익힐 수 있었던 점입니다. 특히 강의 내용을 프로젝트에서 직접 구현해보며, 이론과 실제가 어떻게 연결되는지를 깨닫는 과정이 매우 유익했습니다. 2주차: JPA와 API 설계의 시작2주차에는 JPA를 활용하여 데이터베이스와 상호작용하는 방법을 학습하고, CRUD 기능을 직접 구현해보며 JPA의 기본 개념에 익숙해질 수 있었습니다. 실습 프로젝트를 통해 엔티티 간의 관계 설정과 데이터베이스 초기화를 진행하면서 JPA의 다양한 기능을 경험하였고, 강의를 통해 학습한 내용을 실습에 적용하며 개발자로서의 자신감을 쌓을 수 있었습니다.또한, 이번 주에는 REST API를 설계하고 구현하는 미션을 수행했습니다. 사용자와 게시글, 댓글을 관리하는 여러 API를 설계하면서, RESTful한 접근 방식을 유지하기 위해 고민했습니다. API 설계 시 직관적이고 간결한 엔드포인트를 유지하려고 노력한 덕분에, 이후 테스트 코드 작성 및 검증 과정에서도 큰 어려움 없이 진행할 수 있었습니다. 3주차: 컨트롤러 개발과 API 테스트 코드 작성3주차에는 Spring Boot와 JPA를 사용하여 컨트롤러를 개발하고, 다양한 엔드포인트를 구현했습니다. 이와 함께 Thymeleaf를 활용해 프론트엔드 작업을 진행하며, 백엔드와 프론트엔드의 유기적인 연결을 실습해 볼 수 있었습니다.특히 이번 주에는 테스트 코드 작성의 중요성을 다시 한번 실감하게 되었습니다. API의 동작을 검증하는 테스트 코드를 작성하면서, 예상하지 못했던 예외 상황을 처리하고 기능을 보완하는 과정을 통해 코드의 완성도를 높일 수 있었습니다. Thymeleaf를 사용해 프론트엔드를 구성하는 데 있어 부족함이 있었지만, 이를 보완해가며 더 나은 결과물을 만들 수 있었던 점이 인상 깊었습니다. 4주차: 프론트엔드 템플릿 작업과 배포 경험마지막 4주차에는 Thymeleaf의 fragment 기능을 사용하여 HTML 구조를 모듈화하는 작업을 진행했습니다. 프론트엔드를 구성하며 공통 레이아웃을 재사용 가능한 형태로 분리해 유지보수성을 높였고, Docker와 Nginx를 활용해 배포 작업까지 경험할 수 있었습니다. 직접 Docker 이미지를 빌드하고, MySQL 컨테이너와 연동하여 실제 서비스를 배포하는 경험은 매우 실질적이었고, 개발자로서 한 단계 더 성장할 수 있는 계기가 되었습니다.이번 스터디를 통해 가장 크게 느낀 점은 개발 과정에서 이론과 실습의 균형이 얼마나 중요한지였습니다. 각 주차마다 학습한 내용을 프로젝트에 직접 적용해보고, 그 과정에서 발생한 문제들을 해결하면서 실력을 쌓을 수 있었습니다. 또한, API 설계와 테스트 코드 작성, 그리고 실제 배포까지 전 과정을 경험하면서 백엔드 개발의 흐름을 체계적으로 이해할 수 있었습니다.이번 스터디에서 성실히 참여한 결과, 우수러너로 선정되는 영광도 누릴 수 있었습니다. 앞으로도 이번 스터디에서 얻은 배움을 바탕으로 꾸준히 학습하고 성장해 나가고자 합니다. 인프런 워밍업 클럽 스터디를 통해 함께한 모든 분들께 감사드리며, 이후에도 지속적으로 배움을 나누고 함께 성장해 나가기를 희망합니다.

백엔드인프런인프런워밍업클럽스터디2기워밍업백엔드프로젝트후기

2024-11-07

따라하면서 배우는 노드 기본 강의를 듣는데, 이상하게 자꾸 뭔가 막히고 집중이 안 되는 현상을 경험하였습니다.원인을 알 수 없어서 며칠 간 다른 강의들을 우선적으로 듣고 다른 작업을 하고 있었는데, 그 원인을 오늘 알게 되어서 정리하게 되었습니다.막힌 부분: 비밀번호 해싱 및 로그인막힌 이유: 비밀번호 해싱 과정 및 로그인 플로우의 절차적인 순서에 대해서 스스로 정리하지 않았습니다. 해결 과정: 순서 다이어그램을 가지고 이해한 순서를 정리해보았습니다. (mermaid 문법, 강의 내용과 다른 부분 존재)sequenceDiagram Client ->> Server: POST /login { email, password } Server ->> Database: SELECT name, email, password_hash FROM user WHERE email = ? alt user exists Database -->> Server: (user_id, name, email, password_hash) alt password_matches(password, password_hash) Server ->> Session: save { user_id } alt Session -->> Server: Success <random-sid> Server -->> Client: 200 OK, Set-Cookie: sid=<random sid> else Session -->> Server: Error Server -->> Client: 500 Internal Server Error end else password does not match Server -->> Client: 401 Unauthorized end else user does not exist Database ->> Server: null Server -->> Client: 409 Conflict? end별해?: 강의와 같이 제공되는 참고자료와 겹치는 내용도 많기 때문에 제가 그 자료를 읽고 정리해 꼼꼼히 이해했다면 문제를 겪지 않았을 것 같습니다.간단한 알고리즘 문제를 풀 때의 경우에는 의식적으로 절차적인 순서를 정리하려고 하지 않아도 문제 해결 과정에서 어떻게 해야 하는지를 손으로 필기하는 편인데, 이렇게 달라진 유형(?)으로 마주하다 보니 '절차적인 순서를 정리해야겠어!'라는 생각이 아닌, '왠지 모르지만 자꾸 막히네...' 하는 생각이 들어서 해결하는 데 시간이 조금 더 걸렸던 것 같습니다.

학습일기

Snowflake

BUILD KOREA - Snowflake 최신 혁신 기술을 만나보세요!

#테크웨비나 #제품업데이트 #데모세션 #AL/LLM #python #SQLSnowflake의 새로운 제품 업데이트 소식이 궁금하신가요? 조직과 업무를 더욱 빠르고, 효율적으로 만드는 방법에 대해 고민하시나요?새로워진 Snowflake의 제품과 기능 발표, 실제 구동 방식을 보여주는 데모를 통해 생성형 AI와 LLM의 시대에서의 빠르고 효율적인 데이터 파이프라인, 모델, 애플리케이션 구축 방법 등에 대해 배워보시기 바랍니다.BUILD KOREA 등록자 분들께는, 행사 당일 진행되는 5가지 세션 이외에도 ⭐Andrew Ng님의 키노트 세션⭐과 더불어 AI 전략 수립을 위한 증분 데이터 처리, 파이썬을 활용한 파이프라인 구축 등 엔터프라이즈의 데이터 준비부터 챗봇으로 비즈니스 인사이트를 구축하는 방법 등을 다루는 더욱 자세한 세션을 다시보기로 제공해 드립니다!👉 BUILD KOREA 등록하기* 풍성한 이벤트와 경품 추첨의 기회도 놓치지 마시기 바랍니다! ✅ 이런 분들은 꼭 참석해주세요!• Snowflake의 새로운 제품 업데이트가 궁금하신 분• 조직과 업무의 효율성에 대해 고민하고 계신 분들• 새로운 기능 데모를 보고 실제 업무에 적용해보고 싶으신 분들• 3시간 정도 세션 시청이 가능하신 분들

데이터 사이언스 기타테크웨비나제품업데이트데모세션AL/LLMpythonSQL

채널톡 아이콘