OT
어떤 내용들로 6개월을 채우게 될까 걱정반 기대반을 하고 있었는데 OT날이 불쑥 다가왔다.
한달, 두달이 아닌 6개월은 예상치 못한 일들이 발생할 수 있는 기간이라 휴가, 병가, 조퇴 등 사용하는 방법들을 알려주시고
출석하는 법, 커리큘럼 설명 등을 듣게 되는 시간을 가졌고,
마지막 시간엔 아이스브레이킹 시간으로 조를 짜서 서로 소개하고 6개월 과정에서 어떤것을 얻어가고 싶은지 나누는 시간을 가졌다.
다 같이 레고를 만들면서 어떤 6개월을 지내고 싶은지 표현하는 시간도 가졌는데 저 포함 4분 중 3분이 러너가 계셔서 마라톤 트랙과 목적지를 향해 뛰어가는 형태로 만들었다.
1주차 수업
첫날엔 강사님 소개와 커리큘럼을 더 상세하게 알려주셨는데 추 후 어떤 서비스를 이용해서 어떤것들을 배우고 어떤 클라우드를 구독해서 사용할 예정인지 그런것들을 설명해주셨습니다.
ChatGPT API
- 우리가 아는 구독형 ChatGPT가 아니라 OpenAI에서 제공하는 API
프로그래밍으로 직접 호출해서 사용하는 방식. - API는 사용한 만큼만 요금을 부과함.
- ChatGPT에 물어보면 그걸 그대로 OpenAI에 전달하는게 아니라
ChatGPT 나름대로 원하는 결과를 추출해주기 위해 프롬포트를 만들어서 전달한다. - 자신이 원하는 방식으로 프롬포트를 보내서 결과를 제어할 수 있다.
RunPod
- AI 모델(예: Llama, Stable Diffusion, Whisper 등)을 직접 GPU 서버에서 실행할 수 있게 해주는 클라우드 플랫폼
- 오픈소스 모델이나 커스텀 모델을 실행하고 싶은 사람들이 사용함
- Jupyter 노트북, API 서버, 백엔드 추론 서버 등 사용 가능.
AWS 클라우드 컴퓨팅 서비스
- 아마존에서 제공하는 클라우드 컴퓨팅 플랫폼
- 사용한 만큼만 비용을 지불
- EC2를통해 가상 서버 환경 갖추기
- S3(파일 저장소), RDS(데이터베이스 서비스) 머신러닝 모델 훈련
Django
- 파이썬 기반 웹 프레임워크
- 웹 사이트 및 웹 애플리케이션 개발
- AWS환경에서 RDS에 데이터베이스 연동, 정적파일은 S3에 업로드 등
개발 경력이 있다보니까 변수나 if문,, for문 이런건 사실 기본적으로 모두 아는 내용들이었고,
파이썬은 처음이라 AI캠프에서 제공해줬던 프리코스를 듣고
백준 문제들을 통해서 리스트 - 반복문 사용법이나 주요 문법들을 미리 익혀뒀기때문에 1주차 수업은 무리 없이 가볍게 들을 수 있었다.
zip 함수
백준 2745번 문제를 풀 때, A,B,C,,,Z를 key값으로 10,11,12,,,35를 value값으로 가지고 싶었는데 index으로만 체크할 수 있나 고민하던중 수업시간에 zip 함수에대해서 배웠다. swift에서도 zip 함수는 있는데 사실 협업에서 크게 사용할 일 없는 함수라 몰랐던것,,🥲
원래 기존에 index로만 별도 리스트를 가지고 매칭 시킨 방법.
eng_list = [chr(s) for s in range(ord('A'), ord('Z')+1)] # ['A', 'B', 'C',,,'Z']
int_list = [i for i in range(10,36)] # [10, 11, 12,,,35]
for i, s in enumerate(eng_list):
print(s, int_list[i])
# A 10
# B 11
# ,,,,
# Z 35
수업시간에 zip 함수를 배워서 원하던 방식대로 key, value 형태로 변경한 방법
d = {s:i for s, i in zip(eng_list, int_list)}
print(d)
#{'A': 10, 'B': 11, 'C': 12,,,,'Z': 35}
python 코드가 길 때 나누는 방법도 새로 배웠다.
# 1. 긴 문자열 그대로
s = "askgjlsdkjglkwejgoiwheoighwjsoisufowdlksjhfhwusdfijklsdhfgiuwodsklfjhewsdufiojklewhsfudiowejskdfhewdsoijkfhwedsfijokhjwesdijo"
print(s)
# 2. \ 나누기
s = "askgjlsdkjglkwejgo\
iwheoighwjsoisufowd\
lksjhfhwusdfijklsdh\
fgiuwodsklfjhewsduf\
iojklewhsfudiowejsk\
dfhewdsoijkfhwedsfi\
jokhjwesdijo"
print(s)
# 3. 소가로 사용해서 나누기
s = ("askgjlsdkjglkwejgo"
"iwheoighwjsoisufowd"
"lksjhfhwusdfijklsdh"
"fgiuwodsklfjhewsduf"
"iojklewhsfudiowejsk"
"dfhewdsoijkfhwedsfi"
"jokhjwesdijo")
print(s)
2. 역슬래시(\)로 나눈 방법은 두번째줄 텍스트 앞에 " ", " "이 존재하면 그것까지 모두 포함해서 출력된다. 앞에 띄어쓰기나 탭 없도록 주의해야한다.
3. 소가로() 방법은 나눠준 사이에 ,(콤마)가 존재하면 안된다.

리스트 컴프리헨션
새로 배운 개념, 리스트 컴프리헨션 : 리스트를 쉽게, 짧게 한 줄로 만들 수 있는 파이썬의 문법
python에서는 리스트 컴프리헨션을 지향한다.
리스트 컴프리 헨션이 일반 for 루프문에 비해 속도가 좀 더 빠르다.
리스트 컴프리헨션은 CPython이 더 단순하고 최적화된 바이트코드로 바꿔주기 때문에, 인터프리터(사람이 작성한 프로그래밍 코드를 한 줄씩 읽고 바로 실행해주는 프로그램)가 실행하기 더 쉬워져 결과적으로 속도가 더 빠르다.
다만, 항상 빠른건 아니고 CPython에서 바이트코드와 더 적은 이름/속성 조회를 하기 때문에 보통 더 빠르므로 읽기 쉬운 경우엔 컴프리헨션을 사용하고 복잡한 경우는 일반 for 루프문으로 풀어서 작성하는게 더 빠르다.
5. Data Structures
This chapter describes some things you’ve learned about already in more detail, and adds some new things as well. More on Lists: The list data type has some more methods. Here are all of the method...
docs.python.org
List comprehensions provide a concise way to create lists.
리스트 컴프리헨션은 리스트를 생성하는 간결한 방법을 제공한다.
PEP 202 – List Comprehensions | peps.python.org
This PEP describes a proposed syntactical extension to Python, list comprehensions.
peps.python.org
List comprehensions provide a more concise way to create lists in situations where map() and filter() and/or nested loops would currently be used.
리스트 컴프리헨션은 map() 이나 filter() 또는 중첩 루프가 사용되는 상황에서 리스트를 만드는 더 간결한 방법을 제공한다.
PCCP 코딩테스트
AI캠프에서 한달에 한번 제공되는 코딩테스트 시험인데 프로그래머스에서 주관하여 진행되는 레벨테스트다.
PCCE - PCCP, PCSQL 이렇게 3종류로 되어있는데 초급은 PCCE, 중급은 PCCP, 데이터 관련 테스트는 PCSQL로 되어있다.
기본적인 알고리즘은 몇번 풀어는 봤으나 사실 코딩테스트 준비를 해본적이 없다라고 할 수 있는데,,,
경력자니까 PCCP는 풀겠지하고 1일차에 진행되는 PCCP 시험을 응시했다.
문제 푸는 시간 내내 눈물 날뻔했다... 집가고 싶고,,, 나 왜 여깄지,,, 싶었다. 아무래도 알고리즘을 이해하고 응용해서 푸는 문제들로 이루어져있다보니 기본 개발 능력과 별개로 알고리즘에대한 이해가 되어있어야 풀 수 있는 문제들이었다.
프로그래머스에 저런 시험이 있다는 것도 몰랐는데 시험을 응시하기 전에 프로그래머스에 PCCP 검색하면 공개되어있는 문제들도 확인 할 수 있다. 시험이 너무 어려웠어가지고 집오는길에 PCCP가 뭔데? 하고 찾아보니 생각보다 유명한 레벨 코딩테스트였다...ㅎ
PCCP는 아직 어렵다고 판단했고,, 오히려 코딩테스트에 독기를 품게 되었다ㅎㅎ
다음주에 진행될 SKN 21기 대상 추가 특별 코딩테스트에서 PCCE를 접수해놓았다.
프로그래머스에서 PCCE 문제들을 다 풀어보았는데 크게 어려움은 없었으나, 50분이라는 시간 제약이 있다보니까 풀 수 있는 문제가 한정될 것이라고 생각된다.
PMI
Plus : 좋았던 점
- 시작하는데 불편함 없게 매니저님들께서 차근차근 설명을 잘 해주셨다.
- 6개월동안 함께할 수강생들인데 소심한 성격이라 다가가기 어려워하는 편인데 잘 적응할 수 있도록 점심 멤버도 랜덤으로 매칭시켜주셨다. 덕분에 짧은 기간인데 여러 수강생분들과 이야기 나눠볼 수 있었음.
- PCCP 코딩테스트 경험, 물론 너무나 망했지만 이 경험을 시작으로 더 성장할 것이라고 다짐한다.
Minus : 아쉬웠던 점
- 진도가 너무 기본부터 시작되다보니 경력자에게는 아는 내용들이었다는점.
그치만 문법이 다른 부분들을 배우고 기본기를 다시 잘 다져보자라는 생각으로 한주를 보냈음. - PCCP 코딩테스트 시험 결과 ㅎㅎ
Impressive : 인상적이었던 점
처음 신입때 안드로이드 오프라인 수업을 들어본 적이 있는데 그 때는 개발자, 전공자들이 대부분이었다.
AI는 갈 수 있는 방향이 너무 다양해서인지 비전공자도 많고 다양한 분야에서 모인 느낌이라 AI는 이제 진짜 무시할 수 없는 다양한 분야에 다양하게 많이 쓰일 기술이라는 생각이 들었다.
