- 회고(Retrospective) 목적
회고는 우리가 진행하고 있는 방향을 점검하고, 이후 진행할 방향성을 확인하기 위함이다.
또한, 스스로 느꼈던 감정, 했던 일을 통해 Action Item에 대한 아이디어를 생각하는 것이다
- 회고에 대한 마음가짐
- 모두에서 이야기할까 말까? 하던 것을 회고를 통해 이야기를 하면서 개선하기
- 이전 회고를 참고하여 현재 진행하는 프로젝트에 대한 생각과 감정을 정리하기
- "특정 상황에 내가 어떤 감정이 들었는가?"라는 본인을 되돌아보고 그 당시 어떤 감정을 느꼈는지
- 만약, 그 때에는 많이 힘들었다면 어떤 상황이 힘들었는지, 어떻게 했으면 달라졌는지
- 문제가 되었던 부분을 비판적으로 분석하고, 어떻게 개선할 수 있는지
- 제시되었던 아이디어, 내가 가진 아이디어에 대해 열린 시선으로 바라보기
- 수동적으로(하라고 해서 한다) 하는 것은 좋지 않으니 적극적으로 하기
- 가장 중요한 것으로 회고를 꾸준히 하기
SKN Family AI 3기 회고록 1주 차 (5F 회고 방법론)
- Facts : 사실. 무슨 일이 있었는가?
| 날짜 | Facts | 참조 |
| 07.08 | 1. 개발 공부에 관한 마음가짐 (가장 중요한 건 능동적인 학습) 2. 시스템 환경설정하는 방법과 필요한 CMD 명령어를 학습 3. VScode의 프로그램에 대한 설명과 가상환경 생성 방법을 학습 4. Git/Gihub와 Docker의 설치 및 환경 설정을 진행 |
|
| 07.09 | 1. VScode의 가상환경 생성방법의 복습 2. 파이썬 기본 문법과 자료구조에 대해 학습 (자료형, 이스케이프 코드, 인덱싱, 슬라이싱, 포메팅, 함수) |
아침 루틴 1. 가상환경 만들기 2. pip 업그레이드 3. pip로 주피터 다운로드 4. select kernel로 .venv 연결 |
| 07.10 | 1. 이전에 설치한 Git/Github, Docker의 버전 및 설정 재확인 2. 리스트의 생성, 수정, 삭제, 함수를 학습 3. 튜플의 생성 및 리스트와의 공통점과 차이점 학습 4. 딕셔너리의 생성, 수정, 삭제, 조건조회, 함수를 학습 5. 집합의 생성, 수정, 삭제, 연산(함수)을 학습 6. 불리언(boolean)으로 자료형 별 참/거짓 판별 학습 |
|
| 07.11 | 1. if문 / if-else / if문의 comprehension 학습 2. for문 / for-else / for문의 comprehension 학습 3. while문 / while-break문 학습 4. Exception(오류)의 종류 학습 5. assert - except - else 문 학습 6. 연습문제(소수 구분, up&down) 풀이 |
|
| 07.12 | 1. def 함수 정의 방법 학습 2. 07.11에 한 연습문제를 def로 구현하기 3. 변수 사용범위(Scope)을 학습 4. 함수의 입력 변수(가변파라미터)를 학습 5. lambda에 대해 학습 및 간단한 def 함수를 lambda로 변환 |
- Feeling : 느낀 점, 감정. 어떤 느낌이 들었는가?
- 첫 시간에 여러 프로그램을 설치하는 부분에서 상세하게 알려주신 것이 매우 좋았음
- 전반적인 학습 방향을 설명하시면서 어떤 언어가 어떤 부분에서 잘 사용되는지 이해하기 쉬웠음
- 공부도 해야하고 동기들과도 잘 지내야겠지만 나한테도 주변사람들에게도 폐를 끼치지는 말자
- Finding : 배운 점, 인사이트. 어떤 것을 기억하고 싶은가?
- 너무 복잡하게 생각하니 코드도 복잡해진다
- 처음엔 단순하게 작성하고 거기서 조금씩 더해가면서 코드를 완성시켜 나가자
- 코드 패턴이나 알고리즘 퀴즈의 설계가 잘되지 않는다고 스트레스받지 말자
- 현직자도 코드를 처음 빌드업하는 시간보다 수정하는 시간이 더 오래 걸린다.
- 알고리즘 퀴즈는 현업에서 사용하지 않는 어려운 패턴이 많다.
- 코드를 접하는 것도, 퀴즈를 푸는 것도 조금은 여유를 갖고 하고 너무 풀 죽을 필요는 없다.
- 그렇다고 너무 풀리지는 말자
- 처음부터 완벽한 코드를 짤 수 없다, 다소 오래 걸리더라도 끝까지 풀어보자
- 너무 복잡하게 생각하니 코드도 복잡해진다
- Future Action : 향후 액션 아이템. 앞으로 무엇을 할 것인지?
- 공부는 체력이다.
- 체력이 있어야 집중력도 이어진다. 그러니 가벼운 운동이어도 좋으니 하루에 시간을 내어서 하자
- 공부는 습관이다. 따라서 운동 100일을 채워서 공부도 하고 체력도 키워보자
- 향후 진도는 빠르게 진행될 것이다. 따라서 관련 지식을 미리 채워두자
- 첫 주의 진도 속도는 다소 느슨한 부분이 있었지만, 다음 주부터는 조금 빠르게 달린다고 강사님께서도 강조를 하셨으니, 예습을 통해 빠르게 따라갈 수 있는 길을 미리 만들어 두자
- 아직 코딩를 잘한다는 느낌이 어떤 건지 알 수 없으니, 경력 있거나 SW전공인 동기들 중에서 잘한 거 같다고 느끼는 코드와 내 코드를 비교하면서 분석해 보자
- 공부는 체력이다.
- Feedback : 피드백. Future Action에서 정한 액션 아이템을 실행하고 어떤 피드백을 받았는가?
- 오류 노트 따로 만들어서 보관하자
- 모으다보면 어떤 부분이 부족한지 알 수 있다.
- 어느순간 실수가 뜸하다가도 똑같은 실수를 하니 작성하는 것이 매우매우 중요
- 아직 첫 주라 구체적인 피드백은 없으나, 현재까지는 순항 중
- 오류 노트 따로 만들어서 보관하자
동기들과 코드 비교
내가 가진 문제를 인식하는 것과 잘하는 코드를 보면서 어떤 구조인지 눈에 익히기 위함이지,
절대로 비교하면서 풀죽으면 안됨!! 저 수준을 향해 나아가자는 목표 의식을 가지자.
- 소수 구분하는 문제
- 내가 짠 코드
value = input()
try:
int_v = int(value)
except:
print("Math Error")
quit()
if int_v > 0:
pass
elif int_v == 0:
print("입력한 수는 0으로 자연수가 아닙니다.")
elif int_v <0:
print("입력한 수는 음수로 소수도 자연수도 아닙니다.")
type_num = []
int_type_num = []
sqrt_v = int_v**0.5
int_sqrt_v = int(sqrt_v)
for i in range(2, int_sqrt_v+1):
type_num.append(int_v/i)
int_type_num.append(int(int_v/i))
judge = [bool(type_num[j] == int_type_num[j]) for j in range(len(type_num))]
if True in judge:
print("입력한 숫자는 합성수입니다.")
else:
print("입력한 숫자는 소수입니다.")
# 너무 복잡하게 생각함 => 단순하게 생각해보자
-
- 동기들이 짠 코드 중 하나
try: # 강사님 답변(정답은 아님 이런표현이 있구나 정도로 넘어가자)
answer = input()
answer = int(answer)
assert answer >= 2
for i in range(2, answer):
if answer%i == 0:
print("합성수입니다.")
break
else:
print("소수입니다.")
except:
print("math error")
- up&down 문제
- 내가 짠 코드
# up&down 숫자 맞추기
import random
PC = int(random.random()*100)
answer = int(input("1~100 중 고르세요"))
assert 0<answer<=100, "범위에서 벗어난 값입니다."
for i in range(100):
if answer > PC:
print(answer, "Down")
answer = int(input("1~100 중 고르세요"))
elif answer < PC:
print(answer, "Up")
answer = int(input("1~100 중 고르세요"))
elif answer == PC:
print(answer, "Correct!!")
break
-
- 동기들이 짠 코드 중 하나
import random
import time
def start_game():
for i in range(3, 0, -1):
print(f"{i}초 후 게임이 시작됩니다.")
time.sleep(1)
print("빠라라삐라비라~")
time.sleep(2)
print("로봇이 숫자를 지정했습니다. 6회안에 맞추세요")
def do_game():
randint = random.randint(1, 100)
count = 1
# 랜덤값과 입력값이 같을 때까지 반복
while count < 7:
print(f"<< {count}회차 >>")
try:
input_number = get_number()
except:
print("1~100 사이의 숫자를 입력하시라고요.")
continue
else:
if check_number(input_number, randint, count) == True:
break
count += 1
else:
print("아쉽네요. 6회안에 맞추지 못했습니다. ㅠㅠ")
print(f"정답은 {randint}이었습니다. z")
def get_number():
input_number = input("숫자를 입력하세요: ")
assert input_number.isnumeric() == True and 1 <= int(input_number) <= 100
input_number = int(input_number)
return input_number
def check_number(num, randint, count):
# 입력값이 랜덤값보다 작으면 up
if num < randint and count < 6:
switchControl1 = random.randint(1, 3)
switch = {
1: "조금 더 올려보세요",
2: "팍팍 좀 올려보세요",
3: "저 믿고 5만 올려보세요",
}
print(switch[switchControl1])
# 입력값이 랜덤값보다 크면 down
elif num > randint and count < 6: # 7,
switchControl2 = random.randint(1, 3)
switch = {
1: "이거 좀만 내리면 될 거 같은데",
2: "조금 내려보실래요?",
3: "이거 좀 내려야 할 듯?",
}
print(switch[switchControl2])
elif num == randint:
print("정답입니다~~")
print("\\n게임 종료~")
return True
start_game()
do_game()
- 의견 교류
- 처음부터 잘하는 사람은 없다.
- 중간 중간 빼먹는 파트나 필요해서 넣는 부분 등 그때그때 넣으면 되니 가벼운 마음으로 코딩하기
- 코드 실행 시 발생하는 오류는 대부분 문법오류인데 이런 오류를 최소화 하는게 실력이다.
- 오류 코드 발생하면 오류 노트 달아서 계속 갱신해주자
- 자신만의 코드 짜임새에 익숙해지면 실력은 금방 늘어난다.
- def 함수를 써야할지, 일반 코드로 짜야할지, 다른 import 가지고 올지는 개인의 선택이다.
- 계속해서 다른 사람의 코드를 보고, 어떤 구조인지 파악하다 보면 다른 문법도 자연스럽게 사용할 수 있게 된다.
- 실력 향상은 마치 토익처럼 올라간다
- 어느 순간 깨닫는 순간이 온다 그렇지만 공부를 꾸준히 하지 않으면 영원히 안온다.
- 공부도 습관이다
- 코딩엔 정답이 없지만 "최소한 이 정도는 해줘야 한다"는 있다.
- 본인의 실력에 최대와 최소가 있다면 최소는 맞춰야 한다.
- 처음부터 잘하는 사람은 없다.
작성자도 비전공자이고 전공에서 뛰는 사람들보단 늦었을지도 모르지만, 지금이라도 포기하지 않고 끝까지 해낸다면 한 사람의 개발자로 성장할 수 있다고 믿고 공부 열심히 하고 있습니다.
SKN 부트캠프에서 만난 모든 분들과 함께 멋지게 수료하고 취업에도 성공하는 목표로 오늘도 열공합시다
'SKN > Family AI camp 3기 회고록' 카테고리의 다른 글
| SKN Family AI 3기 회고록 5주 차 (0) | 2024.08.11 |
|---|---|
| SKN/Family AI camp 3기 월간회고록 7월 (0) | 2024.08.05 |
| SKN Family AI 3기 회고록 4주 차 (0) | 2024.08.05 |
| SKN Family AI 3기 회고록 3주 차 (0) | 2024.07.29 |
| SKN Family AI 3기 회고록 2주 차 (1) | 2024.07.22 |