서론
금주부터 skn family ai camp(부트캠프, ai관련 개발능력을 기르는 수업)를 시작하게 되었습니다.
올해 대학교 학사 과정 4년을 마치고 바로 시작하는 도전입니다.
타지인 독산동에서 오전9시부터 오후6시까지 강의를 듣고 팀 프로젝트를 하는 방식입니다.
좋았던 점, 아쉬웠던 점, 인상적이었던 점(PMI) 형식으로 각 한주를 돌아보는 시간을 가지는 글을 적는 공간입니다.
블로그를 작성하는 능력이 부족하여도 점차 성장해 나가보도록 하겠습니다. 잘 부탁드립니다.
좋았던 점
수업 초반부 내용은 파이썬 언어에 대한 기초와 코딩을 하기위한 기본 설정을 배웁니다. 저는 4학년 학사과정을 소프트웨어학과(심지어 복학후엔 ai와 python을 주로 공부하였습니다)를 진행하였어서 크게 어려운 내용은 있지 않아 적응에만 잘 하면되는 기간이였습니다. 개발환경 또한 자주 사용하던 구글의 colab을 사용해 편했습니다. 노트북으로 코딩을 해도 gpu를 사용할 수 있고 코드 파일을 옮기며 작업할 필요가 없기 때문입니다. 또한 ipynb파일 방식을 좋아합니다.
또한 9시부터 6시 정규과정이 저의 생활패턴을 건강하게 유지하는 것 또한 좋은 점 같습니다. 비록 앞으로 6개월간 혹은 그 이후에도 평일에는 낮잠을 못자는 점은 좀 슬픕니다.
아쉬웠던 점
교육에 좀 더 많은 에너지를 투자하고 싶어 센터 근처 자취방을 얻었습니다. 하지만 이 자취방이 생각보다 작았습니다(어차피 6개월만 살거라 저렴한 곳으로 골랐습니다). 그로인해 데스크탑을 사용하기 위해선 이불을 접어야만 의자 공간이 나왔고, 빨래 건조대를 펼치면 잘 피해다녀야 합니다. 새로운 장소에서 잠을 자려니 이번주는 숙면을 취하지 못한거 같습니다(분명 안잔거 같은데 아침 알람소리에 일어납니다...). 적응이 빨리 되어야 잠도 잘 자고 아침도 먹고 교육 들으러 갈 수 있을거 같습니다. 그 후 운동도 다시 해볼 생각입니다.
인상적이었던 점
타지에서 교육을 들음으로서 나와 같은 교육생들 또한 궁금했습니다. 놀라웠던 점은 제 생각보다 다들 열정적이라는 것입니다. 매 수업 집중하고 미래를 고민하며 열심히 교육을 듣습니다. 저 또한 이러한 분들 옆에서 더욱 힘내어 최대한을 끌어 다같이 성장했으면 좋겠다는 생각이 듭니다(마음 맞는 사람들과 스터디 하는 것도 재밌고 큰 도움이 될거 같아 기대가 됩니다).
강의를 듣는 건물도 매우 삐까뻔쩍하고 대여받은 노트북또한 상태가 매우 좋아 첫날 기분이 매우 좋았습니다. 비록 강의실에 창문이 없어 사무적이도 딱딱한 느낌이 나지만 회사 생활을 미리한다고 생각했습니다.
수업 내용중 어렵거나 중요하다고 생각한 내용 (중요하지만 원래 아는 내용은 스킵하였습니다)
1.파이썬 자체 함수 변수명으로 사용시 대처법

실수로 파이썬 자체 함수(ex. sum, max, min 등)을 변수명으로 사용하여 파이썬 함수 기능에 덮어씌어져 기능을 못할때 del을 사용해 변수를 지워주면 원래 함수 기능이 돌아옵니다. 최대한 저러한 실수는 하지 않는것이 좋지만 세션을 초기화 하지 않아도 되돌릴 수 있는 방법을 알았습니다.
2. map함수

map 함수 입니다. 리스트 같은 집합 변수에 특정 함수 및 기능을 각각의 값에 적용하게 하는 함수입니다. int()와 같은 str데이터에만 사용 할 수 있는 함수를 list타입 변수속 각 데이터에 적용하여 가능하게끔 합니다.

또한 lsit타입 변수를 인덱스를 이용하여 뽑아 내면 str로 처리가 가능하다.
3. 얕은 복사 와 깊은 복사

상당히 중요한 깊은 복사와 얕은 복사를 잘 보여주는 코드입니다.
str_2 = str_1 와 같이 문자열은 그대로 옮겨주면 값이 아닌 주소값을 넘겨주어 얕은 복사가 됩니다. --> str_2 값이 변경되면 str_1의 값도 변경이 됩니다. --> 데이터 손상 가능
반면 num2 = num1 과 같이 문자열이 아닌 int 값을 넘겨주는 것은 깊은 복사로 주소가 아닌 값을 복사해주게 됩니다. --> num2는 변경하여도 num1의 값이 변경되지 않습니다.
이유 : 문자열은 각 글자 하나하나 주소값이 다르게 들어있습니다(한 글자당 4bite씩 차이). str_2 = str_1과 같이 복사를 하게 되면 모든 글자가 복사되는 것이 아닌 str_1의 시작 주소만 복사가 됩니다(). 하지만 int 데이터는 주소하나에 숫자 데이터가 그냥 들어있습니다. 그로인해 num2 = num1 을 하여도 값만 복사 할 수 있습니다.
문자열 데이터를 깊은 복사를 하기 위해서는 str_2 = str_1[:]를 통해 모든 글자를 넘겨주는 방식과 str_2 = str_1.copy() 처럼 copy함수를 이용하는 방법이 있습니다.
(강사님의 낚서가 옮겨진다는 표현이 인상깊었습니다)
chat gpt 설명의 예시

또한 얕은 복사와 깊은 복사에 대해 확실히 알기 위해 gpt를 활용해 간단한 코들르 실행해 보았습니다. copy라이브러리의 copy함수를 통해 리스트를 얕은 복사를 하였습니다. 추가적으로 알게 된 얕은 복사의 특징입니다.
1. 최상위 객체만 새로 생성
2. 내부의 가변 객체는 원본과 공유
3. 내부 가변 객체를 변경하면 원본도 영향 받은
4. 최상위 요소(불변 객체)는 독립적으로 변경가능
1,2 는 최상위 요소로 불변 객체입니다. 그로인해 원본을 회손시키지 않습니다. 하지만 [3,4] 속 3,4 는 내부의 가변 객체로 원본가 공유하여 변경하면 원본도 같이 변경이 됩니다. 최상위 리스트 객체는 새로 생성되는 것이지만, 내부 리스트(original[2])는 새로 생성이 아닌 객체를 참조하기 때문입니다.
4. print()함수 심화

print(f"안녕하세요 {name}입니다")와 같이 f를 사용하여 print문 속 원하는 글과 변수값을 출력할 수 있습니다. 변수값는 {변수명}을 통해 가능합니다.
print("안녕하세요", end = "\t")를 통해 print()명령 후 다음 공백을 지정할 수 있습니다. \t는 tap키이며 기본은 \n인 한줄 띄기(줄바꿈) 입니다.
end의 옵션은 다음과 같습니다(chat gpt)

5. 유용한 라이브러리
1. 형태소 분석기 (konply 라이브러리 사용)

konply 라이브러리의 Okt 형태소 분석기를 사용하여 명사,형용사, 부사를 추출해 낼 수 있씁니다.
2. 특수기호 묶음(string라이브러리의 punctuation)

string 라이브러리에 puctuation에는 특수문자들이 들어있습니다. 이를 활용하면 편할거 같습니다.
금주의 이모티콘(금주의 나의 상태를 제일 잘 표현하는 이모티콘)

감사합니다!!!
'skn family ai camp' 카테고리의 다른 글
| skn 6 주차 회고록(2025.03.31-2025.04.04) (0) | 2025.04.05 |
|---|---|
| skn 5 주차 회고록(2025.03.24-2025.03.28) (1) | 2025.03.29 |
| skn 4 주차 회고록(2025.03.17-2025.03.21) (0) | 2025.03.22 |
| skn 3 주차 회고록(2025.03.10-2025.03.14) (0) | 2025.03.16 |
| skn 2 주차 회고록(2025.03.04-2025.03.07) (0) | 2025.03.10 |