목차

오늘의 TIL 순서는

  1. 시작전 마음가짐
  2. Stramlit 예습
  3. Stramlit 특강 2일차
  4. langchain 특강 1,2
  5. 회고

시작전 마음가짐

팀과제를 진행하며 구현해보고 싶은 것들은 많지만 어떻게 구현해야할지 감이 오지 않습니다.

 

이 작업을 하기 위해서 많은 공부가 필요해보입니다.

 

그래서 차근차근 지금 내가 알고있는 범위 내에서 공부를 해가며 학습 범위를 늘려 나갈 계획입니다.


Stramlit 예습

스트림릿으로 세션을 생성하고 저장해 활용하는 방법을 찾아보고 블로그의 글을 따라 진행해보았지만 적절한 설명이 없어서 내용을 이해하지 못했습니다.


Streamlit 특강 2일차

1. 컴포넌트 활용

1) 사이드 바 구성 2) 컬럼 레이아웃 3) 토글

2. 데이터와 상호작용

  • 파일 업로드
    • st.file_uploader: 드래그 앤 드랍으로 파일을 넣을 수 있다.
uploaded_file = st.file_uploader("CSV 파일 업로드", type="csv")
if uploaded_file:
    df = pd.read_csv(uploaded_file)
    st.write("데이터 미리보기:")
    st.dataframe(df)
  • 데이터 처리 및 시각화
if uploaded_file:
    st.write("컬럼별 데이터 요약:")
    st.write(df.describe())
  • 데이터 필터링
if uploaded_file:
    column = st.selectbox("필터링할 컬럼 선택", df.columns)
    value = st.text_input(f"{column}의 값을 입력하세요")
    if value:
        filtered_df = df[df[column].astype(str).str.contains(value)]
        st.write("필터링된 데이터:")
        st.dataframe(filtered_df)

3. 고급 시각화

  • plotly, matplotlib, seaborn
  • 막대(mark_bar), 산점도(scatter), 꺽은선(mark_line), 히스토그램(hist)등 생성 방법

langchain 특강 1,2

랭체인의 구조와 흐름을 간단하게 알아보고 어려운 부분을 설명하는 시간이였습니다.

  • 체인구조와 조건
  • 프롬프트 작성과 변수 넣기
  • Runnable 인터페이스(RunnablePassthrough())
  • StrOutputParser()
  • DebugPassThrough()

회고

오늘의 학습은 혼자 힘으로 gpt를 사용하지 않고 진행하였습니다.

 

그만큼 속도가 느려 많은 학습을 하지는 못했지만 뭔가 뿌듯함이 남습니다.

 

팀과제의 전처리 과정이 쉽게 끝나질 않습니다.

 

팀과제에 도움이 되기 위해서 스트림릿을 예습 진행 한 것인데 전처리 과정이 자꾸 삐긋하여 시간이 꽤 걸리는 것 같습니다.

 

아직 전처리 과정을 마무리하지 못해 마무리하고 학습을 마치겟습니다.

오늘은 팀과제를 위해 한글 PDF문서를 전처리 하는 과정을 어떤 전처리를 진행했는지 진행하며 알게 된 내용을 설명하며 진행하겟습니다.

사용할 기술

  • PYPDFLoader

1. 이미지 제거

  • PYPDFLoader는 텍스트를 주로 추출해서 모델에 전달해주는 라이브러리이기 때문에 이미지를 직접 삭제 해 주었습니다.
  • 이미지를 삭제하지 않고 진행하게 된다면 영어text와 특수기호로 바뀌게 되어 이를 배제하기 위해 영어 text가 누락 된다고 합니다.

이미지를 모델에 학습 시키는 방법

  1. OCR(광학 문자 인식) 도구를 사용하여 텍스트를 추출하세요. PyMuPDF 또는 Tesseract와 같은 OCR 기반 라이브러리를 사용해 텍스트를 추출할 수 있습니다.
  2. 이지미 삭제
  3. 이미지 설명을 텍스트로 변환하여 학습 (transformers의 BlipProcessor, BlipForConditionalGeneration)

2. 표 text로 수정

  • 전처리 없이 PYPDFLoader를 쓸 때: 표의 헤더와 데이터가 구분되지만, 모델은 이를 텍스트로 처리할 수 있을 뿐, 열과 행의 관계는 명확히 이해하지 못할 수 있다고 합니다.
  • 개행 빈줄 불용어 전처리를 거치면 모델이 이해 불가

해결 방법

1) 마크다운 형식으로 고치기 2) json형식으로 작성 3) csv형식으로 작성

3. 링크 걸린 텍스트에 URL 추가

ex) 여기에 자료 : https://www.URL/

  • 모델이 직접 PDF 파일 내에 포함된 링크를 직접 "클릭"하거나 외부 리소스를 가져와 활용하지 않는다고 합니다.
  • 링크가 걸려있지만 text만 추출하기 때문에 참고자료로 활용할 수 없다고 합니다.

4. 없어졌거나 안들어가지는 링크 제거

  • 각 싸이트의 내용과 링크의 유지보수성을 고려했습니다.
  • 당장 링크에 들어가지기만 하면 된다고 판단하고 진행했습니다.단기 프로젝트이기 때문

5. 문서 내용 추가

  • 정보를 추가하여 목표하는 성능이 나올 수 있게 내용을 추가 해 주었습니다.
  • 각 단락의 Reference 링크를 참고하여 추가했습니다.

진행하며 전처리에 관한 궁금증 해결

질문 :

  • PYPDFLoader로 문서를 불러올 때 개행 빈줄 불용어 제거 및 토큰화, 요약, 문법 수정, 불필요 문자 제거 등의 작업이 필요한가요?

답변:

  • 개행 및 빈줄 제거:
    • 텍스트 분석이나 질의응답과 같은 작업에서는 불필요한 공백이나 개행을 제거하는 것이 유용할 수 있다고 합니다.
    • 페이지 레이아웃을 유지해야 하는 경우는 진행하지 않는게 종다고 합니다.
  • 불용어 제거:
    • 주요 내용이나 핵심 문장을 추출하고자 한다면 불용어를 제거하는 것이 도움이 될 수 있다고 합니다.
    • 문맥이나 자연어 이해가 중요한 경우 불용어를 제거하면 의미를 왜곡할 수 있으므로 불용어 제거를 하지 않는 것이 좋을 수 있다고 합니다.
  • 토큰화:
    • 자연어 처리나 텍스트 마이닝, 정보 검색 등의 작업에서는 토큰화가 필요하다고 합니다.
    • 질의응답이나 검색 시스템에서는 텍스트를 보다 잘 분석하고 인덱싱하기 위해 토큰화가 필수적이라고 합니다.
  • 요약:
    • 문서가 너무 길거나 핵심 정보만 추출하고 싶을 때 요약을 적용하는 것이 유리하다고 합니다.
    • 전체 문서의 모든 내용을 사용하는 것이 중요하다면 요약이 필요 없을 수 있습니다.
  • 문법 수정, 불필요 문자 제거
    • 특수 문자, 중복 텍스트, 잘못된 문법 등이 포함될 수 있기 때문에 자료를 잘 파악하고 진행해야 합니다.

결론

PyPDFLoader로 문서를 불러올 때는 문서의 형태와 목표 작업에 따라 개행, 빈줄, 불용어 제거, 토큰화, 요약 등의 전처리 작업을 할지 말지를 결정해야 할것으로 생각이 듭니다.

  • 텍스트 분석 및 정보검색에선 위의 과정이 필요할 수 있다고 생각합니다.
  • 원본 텍스트 보존이 중요한 경우에는 위 과정을 잘 선별해야 한다고 생각합니다.

목차

오늘의 TIL 순서는

  1. 시작전 마음가짐
  2. Python 문제풀이
  3. base 지식 탐구(ASCII, 문자열 함수)
  4. Streamlit 특강
  5. 수준별학습반: 딕셔너리 특강
  6. 회고

학습 내용은 GITHUB링크를 참고해 주세요

 

TIL/Python/문자열 함수.ipynb at main · Onesword-Jang/TIL

오늘 배운 것은?! Contribute to Onesword-Jang/TIL development by creating an account on GitHub.

github.com

 

 

TIL/base/ASCII.ipynb at main · Onesword-Jang/TIL

오늘 배운 것은?! Contribute to Onesword-Jang/TIL development by creating an account on GitHub.

github.com

 


시작전 마음가짐

오늘은 2가지의 특강이있으며 팀 프로젝트의 전처리과정과 streamlit 예습을 주로 진행할 것 같습니다.

 

어제 진행하지 못한 Python문제풀이까지 모두 마치는것이 목적입니다.

 

목차로 일정을 정리하니 학습 내용이 조금 부족하다는 생각이 들지만 당장 무엇을 학습해야할지 떠오르지 않아 학습을 진행하며 추가해 진행할 예정입니다.

 

그럼 일정을 다 계획했으니 학습을 시작하겟습니다.


Python 문제풀이

1. 콜라츠 수열 만들기

  • while조건 문과 식의 대입은 맞췃지만 아직 문법 정리 및 조건 정의가 어색해서 몇번 수정 후 완료
def solution(n):
    answer = [n]

    while n != 1:
        if int(n) % 2 == 0:
            n = n/2
        else:
            n = 3*n+1
        answer.append(n)
    return answer

2. 배열만들기 4

  • 10초 이상이 걸린다고 실패 => 불필요한 욧 제거 필요
  • for문 제거 후 기대값이 다름
  • 자잘한 문법 사용 방법에 어색함
# 내가 푼 문제
def solution(arr):
    stk = []
    i = 0 
    while i < len(arr):
        for i in range(len(arr)):
            if stk == []:
                stk.append(arr[i])
                i += i + 1
            elif stk[-1] < arr[i]:
                stk.append(arr[i])
                i += i + 1
            elif stk[-1] >= arr[i]:
                stk.pop()

    return stk

# 솔루션 후 풀이
def solution(arr):
    stk = []
    i = 0  

    while i < len(arr):
        if not stk:  
            stk.append(arr[i])
            i += 1
        elif stk[-1] < arr[i]:  
            stk.append(arr[i])
            i += 1
        else:  
            stk.pop()  

    return stk

3. 간단한 논리연산자

  • 처음보는 문자로 and, or이 정의되어있어서 간단한 검색 후 진해
def solution(x1, x2, x3, x4):
    return (x1 | x2) & (x3 | x4)

4. 주사위게임

  • 학습하며 set에 대한 이해도가 부족하다고 생각이 들어서 조금 공부해왔습니다.
    • set 자료형을 정말 유용하게 사용하는 경우는 교집합, 합집합, 차집합을 구할 때
    • set 자료형은 인덱싱으로 불러올 수 없어 리스트나 튜플로 변환 시키고 수행해야한다.
    • 1개 값 추가 하기 set.add()
    • 여러 개의 값 추가 하기 set.update()
    • 제거 set.remove()

5. 글자 이어 붙여 문자열 만들기

  • 완료
def solution(my_string, index_list):
    answer = ''
    for i in range(len(index_list)):
        answer += my_string[index_list[i]]
    return answer

6. 9로 나눈 나머지

  • 완료
def solution(number):
    answer = 0
    number = int(number) % 9
    answer += number

    return answer

base 지식 탐구

1. ASCII 문자란?

  • 문자와 숫자를 매핑하는 표준 코드 체계입니다.
  • 컴퓨터가 문자를 숫자로 저장하고 처리할 수 있도록 설계된 초기 문자 인코딩 시스템입니다.
  • 아스키 코드는 총 128개의 문자로 구성
  • 7비트로 표현

파이썬에서 자주쓰는 제어문자 = ASCII

  • 줄바꿈 \n
  • 탭 \t
  • 캐리지 리턴 \r
  • 널 문자 \0

아스키 문자의 활용 방법

  1. 데이터 전송
  2. 문자전환
  3. 암호화/복호화

2. 문자열 함수


Streamlit 특강 1일차

소개 및 설치

  • 특징
    • 쉽고 간단한 문법으로 빠르게 결과를 웹으로 만들 수 있다.
  • 설치 `python pip install streamlit

import streamlit as st

import streamlit as st
import pandas as pd
import numpy as np

- Text 작성
 - st.title("스파르타코딩클럽 AI 8기 예제")
 - st.header("지금 스트림릿 예제를 만들고있습니다")
 - st.text("따라가고있어요")
 - st.markdown("### 마크다운 헤더 문법입니다.")

- 수식
 - st.latex("E = mc^2")

- 버튼 생성 및 동작
if st.button("눌러주세요"): st.write("글씨가 생겨요")

 

- 상호작용 위젯 만들기
agree_box = st.checkbox("동의 하시겠습니까?") if agree_box is True: st.write("동의 하셨습니다.")

 

- 슬라이더 위젯
volume = st.slider("음악 볼륨", 0, 100, 50) st.write(f"음악 볼륨은 {volume}입니다.")

 

- 라디오 버튼
gender = st.radio("성별", ["남자", "여자"]) st.write(f"성별은 {gender}입니다.")

 

- 셀렉트 박스
flower = st.selectbox("라벨", ["1번", "2번", "3번"]) st.write(f"선택한 라벨은 {flower}입니다.")

 

- 데이터 프레임 시각화
df = pd.DataFrame({ "이름": ["장준영", "장한검", "양지아"], "출생년도": ["1996년 11월 04일", "1996년 11월 04일", "2018년 10월 12일"] })

st.write("### 데이터프레임 출력") st.dataframe(df) # 동적으로 크기를 조정 가능한 데이터프레임 st.table(df) # 정적 테이블

 

-  차트 데이터
st.write("### 랜덤 데이터로 라인 차트 그리기") chart_data = pd.DataFrame( np.random.randn(20, 3), # 20개의 행과 3개의 열을 가진 랜덤 데이터 생성 columns=["a", "b", "c"] # 열 이름 지정 )

st.line_chart(chart_data)

 

- 막대 차트 데이터
st.write("### 학생 점수로 막대 차트 그리기") chart_data_2 = pd.DataFrame({ "학생번호": ["1", "2", "3", "4"], "점수": [80, 100, 40, 50] })

st.bar_chart(chart_data_2.set_index("학생번호")) # 학생번호를 인덱스로 설정하여 차트 그리기

 

`


수준별 학습반: 딕셔너리 특강

1. 딕셔너리란?

  • key, value 쌍으로 값이 들어있는 데이터
  • key는 고유식별자로 바뀔 수 없다.
  • key에는 불변한 데이터타입만이 올 수 있다.

2. 사용함수

  • del: 키값 삭제

3. 사용 메서드

  • items(): key,value 불러오기
  • keys(): key값 불러오기
  • values(): value값 불러오기
  • get('키 값', 'none대신 나올 말'): key에 해당하는 value값을 불러오고 없다면 2번째 파라미터로 none을 대신한다.

회고

오늘은 조금 쉬어가는 느낌이 드는 하루였습니다.

 

그만큼 어제가 힘들었다는 이야기일 수 있겟어요ㅎㅎ 몸은 그대로 피로 축적이지만 괜찮습니다.

 

버틸만해요

 

언제나 생각하듯이 조금 더 높은 곳에 올라가려 시도를 하면 가장 아래 부분이 휘청인다는 느낌을 많이 받았습니다.

 

그래서 틈이 나는대로 기초적이지만 내가 모르고 내용을 알면 머리가 아파질만한 내용을 공부했어요.

 

진짜 생각했던 그대로 부실하더군요 물론 지금도 같습니다. 이렇게 초석 부분에 돌을 하나 더 끼워 넣었으니 조금 더 단단해졌습니다.

 

하하하!

 

오늘의 학습은 매우 만족 스러웠고 아쉬운 부분은 없었습니다.

 

하지만 아직 팀과제의 전처리 부분에서 판단 미스로 다시 전처리를 진행하는 과정을 거치고 쉬도록하겟습니다.

 

감사합니다.

목차

오늘의 TIL 순서는

  1. 시작전 마음가짐
  2. 팀 회의
  3. LLM 특강
  4. GIT 관련 유튜브 팀원과 동시 시청
  5. 회고

시작전 마음가짐

오늘은 팀과제인 프로젝트를 제작하는 첫날입니다.

 

팀회의를 통해 잘 조정해가며 만족스러운 과제가 진행이 되었으면 합니다.

 

그럼 학습을 시작하겟습니다.


팀회의

오늘의 팀회의는 팀 프로젝트를 진행하기 앞서 전체적인 부분을 정하는 날이였습니다.

 

기본적으로 팀장님께서 진행을 해주셨고 정보를 취합해주셨습니다.

 

하지만 정해야하는 내용이 많아 회의만 4 ~ 5 시간을 진행해서 조금 힘들었습니다.

 

하지만 의견, 건의 등 자유롭게 말할 수 있어 많은 부분을 공유하고 같이한다는 느낌이 들어 좋기도했습니다.

 

또한 팀회의에서 약간의 이슈가 발생했지만 서로 배려하면 잘 넘어갓습니다.

 

6조 화이팅!!


LLM특강 5일차

1. LangChain

  • AI모델의 능력을 극대화하고, 개발과정을 간소화 한다.
  • invoke의 개념 (call이라 생각하면 된다.)
  • invoke가 가능한 객체는 learnable이라 부름
    • model
    • parser
  • Chain이란: 파이프 연산자 '|'를 사용해서 learnable객체 끼리 연결 (입출력이 있는 함수면 사용 가능)

2. RAG

  • 과정
    • 데이터 로더 => 스플릿("Recursive Character Split") => 임베딩("Chroma", "OpenAIEmbeddings") => 벡터스토어에 저장 => 리트리버 변환 => 프롬프트 템플릿 작성 => 입력 질문과 비슷한 문장을 리트리버로 "문맥 Docs" 가져오기 => "질문 Docs" 포맷팅 및 프롬프트의 {question}에 "질문 Docs" 넣기("RunnablePassthrough") => 프롬프트의 {context}에 "문맥 Docs" 넣기 => 프롬프트를 모델에 전달하고 결과 생성 => text출력("StrOutputParser")

GIT 관련 유튜브 팀원과 동시 시청

  • 과정
    • 레포 만들기 => 팀원 초대 => develop 브렌치 만들기 => 마스터 브랜치 block 설정 => 팀 프로젝트 보드 개설 => 이슈 마다 브렌치 만들기 => 작업 후 push => PullRequste에 확인 요청 => 코드 리뷰 & 승인 => develop에서 merge => main브랜치
  • 이슈 보드
    • add item => 작업 이름 작성 => convert to issue의 작성 레포 클릭 => creat branch에서 develop설정 후 creat클릭 => 작업 상황에 맞게 보드 조작
  • vscode에서 브랜치 열기
    • git clone "URL" => 터미널에서 해당 파일 들어가기 => git fetch origin => git checkout '브랜치' => 작업 시작

회고

아 오늘은 한번도 진행해보지 못한 주제를 처음부터 끝까지 손봐야하는 주제가 떨어져서 힘들었습니다.

 

팀 회의를 이렇게까지 진득하게 해본것도 처음이였고 팀내에서 의견을 이렇게 많이 내는것 그리고 회의도중 의견차이를 좁히는 과정 등 모든 과정이 처음이였습니다.

 

팀원분들이 서로 배려해주고 의견을 표출도 잘하시고 해서 오래동안 회의를 진행하였고 만족스러운 결과가 나왔다고 생각합니다.

 

개인 공부를 이 커리큘럼에서 가장 적게한 날이지 않을까 싶을 정도로 회의를 오래했지만 LLM특강, 수준별 학습반 강의 등 정해진 일정이있어서 학습하는 부분에 아무런 이득이 없는 하루는 아니였습니다.

 

또한 회의를 통해 얻은 결과물이 만족스럽다고 생각이 듭니다.

목차

오늘의 TIL 순서는

  1. 시작전 마음가짐
  2. Python 문제풀이
  3. LLM 특강
  4. 딥러닝 복습
  5. GIT 특강1
  6. 회고

시작전 마음가짐

오늘은 팀과제 발제가 있습니다.

 

19시에 발제가있고 그전에 특강들이 3가지 정도 준비 되어있습니다.

 

개인 학습의 양을 조금 줄이고 일정 소화하는데 집중해야겟습니다.

 

그럼 학습을 시작하겟습니다.


Python 문제 풀이

1. 수열과 구간 쿼리

  • i % k 가 왜 조건이 되는지 이해가 안감
# 내 틀린 풀이
def solution(arr, queries):
    for s, e, k in queries:
        for i in range(s, e + 1):
            if arr[i] % k == 0:
                arr[i] += 1  
    return arr
# 검색을 통한 풀이
def solution(arr, queries):
    for s, e, k in queries:
        for i in range(s, e + 1):
            if i % k == 0:
                arr[i] += 1  
    return arr

2. 배열 만들기2

  • 리스트 컴프리헨션을 잘 사용하고싶다.
  • all함수를 이용하는 방법이 가장 간단해 보인다.
# 틀린 풀이
def solution(l, r):
    answer = []
    for i in range(l, r+1):
        if str(i) == '0' or str(i) == '5':
            answer.append(i)
        else:
            answer.append(-1)
# 검색을 통한 풀이
def solution(l, r):
    answer = []
    for i in range(l, r + 1):  
        if all(a in '05' for a in str(i)):  
            answer.append(i)
    return answer if answer else [-1]

3. 카운트 업

  • 완료
ef solution(start_num, end_num):
    answer = []
    for i in range(start_num, end_num + 1):
        answer.append(i)

    return answer

# 간단한 정답
def solution(start, end):
    return [i for i in range(start,end+1)]

LLM 특강

1. LLM의 문제

  • 맥락이 없는 상태인 챗봇에 맥락을 알려줘야한다.
  • 할루시네연: 없는 정보를 만들어 내서 전혀 상관없는 정보를 만든다.

2. RAG의 배경지식

  • Retrieval-Augmented Generation 검색증강생성
  • 과정
    • 연관 문서 저장 => 문서 쪼개기 => 질문에 맞는 문서 내용 찾기 => 결과 출력
  • 문서 내용 찾는 방법
    • 비슷한 텍스트를 찾아낸다.(유클리드 거리를 계산을 통해 유사도를 구할 수 있다.)
    • 임베딩을 활용해 데이터 포인트의 위치를 찾을 수 있다.
  • 이렇게 찾은 데이터 포인트들의 좌표값을 벡터 스토어에 저장한다.

3. AnyThingLLM 실습

  • AnyThingLLM 다운
  • LLM, 임베딩 모델 선택 등 설정 값 조정
  • 로컬환경의 파일 불러와서 임베딩 클릭하고 바로 실행 가능

딥러닝 복습

1. 인공지능, 머신러닝, 딥러닝의 관계

  • 인공지능(AI) : 인공지능은 인간의 지능을 모방하여 문제를 해결하는 기술을 의미합니다. AI는 규칙 기반 시스템부터 자율 학습 시스템까지 다양한 접근 방식을 포함합니다.
  • 머신러닝(ML) : 머신러닝은 데이터를 이용해 모델을 학습하고, 이를 통해 예측이나 결정을 내리는 기술입니다. 머신러닝은 AI의 하위 분야로, 지도 학습, 비지도 학습, 강화 학습 등의 방법을 포함합니다.
  • 딥러닝(DL) : 딥러닝은 머신러닝의 하위 분야로, 다층 신경망을 사용하여 데이터를 학습합니다. 딥러닝은 특히 대규모 데이터와 복잡한 문제를 다루는 데 강력한 성능을 발휘합니다.

2. 활성화 함수

  • ReLU
  • Sigmoid
  • Tanh(Hyperbolic Tangent)

3. 손실 함수

  • MSE(평균 제곱 오차): 예측 값과 실제 값의 차이를 제곱하여 평균(회귀문제)
  • Cross-Entropy(교차 엔트로피): 예측 확률과 실제 클래스 간의 차이 측정(분류문제)

4. 최적화 알고리즘

  • SGD: 랜덤의 일부데이터(미니배치)를 사용해 기울기를 계산하고 업데이트
  • Adam: 학습률을 적응적으로 조정

5. 딥러닝 활용

  • 회귀문제
  • 이진 분류 문제
  • 다중 클래스 분류 문제
  • 특징 추출(이미지, 이차원 데이터)
  • 시계열 데이터, 순차적인 데이터 처리 및 예측
  • 자연어 처리 및 예측

6. 하이퍼 파라미터

  • 사용자가 설정해야하는 값으로 모델성능에 영향을 미치는 것
    • 학습률: 가중치를 업데이트하는 속도 결정
    • 배치크기: 한번의 업데이트에 데이터 샘플 수
    • 에포크 수: 전체 데이터 셋 몇번 반복 학습 결정
    • 모멘텀: 이전 기울기 반영 여부 결정
    • 가중치 초기화: 모델의 가중치 초기화 방법

7. 하이퍼 파라미터 자동 튜닝 기법

  1. Grid Search: 모든 조합을 시도
  2. Random Search: 무작위로 값을 선택해 최척화
  3. Bayesian Optimization: 이전 결과 바탕으로 다음 평가의 하이퍼파라미터 결정

GIT특강 1일차

협업 시나리오

    1. beanch를 나누는 방법
    2. main: 기준이 되는 브렌치
    3. develop: 개발을 하고있는 브렌치
    4. feature: 개발 중인 기능 중에 하나를 나타내는 브랜치
    1. branch 이동 방법
    2. 브랜치 생성: git branch '이름'
    3. 브렌치 이동: git checkout '이름'
    4. 브렌치 병합: git merge feature-branch
    1. merge충돌 확인 방법
    2. git log --merge: 병합 충돌이 발생한 파일의 이력을 확인
    3. git diff: 충돌 내용을 비교하여 변경사항을 확인
    1. 이슈 트래킹: 보충 필요
    1. 풀 리퀘스트: 보충 필요
    1. 협업 때 좋은 프로그램
    2. 소스트리 :https://www.sourcetreeapp.com/
    3. 깃허브 데스크탑: https://desktop.github.com/download/
    4. 깃 크라켄: https://www.gitkraken.com/

회고

오늘은 일정이 많아 조금 힘이 들었습니다.

 

하지만 일정 외에 개인 공부는 알찻다고 생각합니다.

 

다시 딥러닝 복습할 때는 이 것을 이해하기 위해 얼마나 다시 시간을 갈아 넣어야하나라는 생각이있었습니다.

 

그래서 전체적으로 간단하게 보면서 기본중의 기본이라 생각이 드는 부분을 복습하였습니다.

 

또한 오늘 팀과제 발제가있었는데 생각보다 프로젝트를 한다는게 얼마나 할 일이 많고 어려운지 알게 되는 시간이였습니다.

 

발제만 들었을 때는 무엇을 어떻게 해야하지 이런 생각 밖에 들지않아 와닿지 않았습니다.

 

내일 팀 회의 통해 가닥이 잘 잡혔으면 좋겟습니다.

+ Recent posts