ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (기업프로젝트) 4 - 유라클 프로젝트 git 교육
    개발/프로젝트 2023. 10. 16. 14:09

    ■ 오늘 배울 내용

     

    1. GIT / GITHUB
    2. Morpheus 프로젝트 안드로이드 아이콘적용
    3. Vue3 / Vee-Validate (유효성 체크)
    4. 이미지 업로드(모피어스) 
    5. 팀별로 면담

     

    ■ git / github 란?

     

    분산 버전관리 시스템

    작업하던 시점에 대해 일정한 버전을 관리하기 위한 시스템

     

    ex)

    대학교 ac.kr -> 대학교별 학생 계정 만들면 좋다.

    1. intelij - IDE학생계정

    2. terminus - 터미널(SSH) 학생계정

    3. 노션 - 게시판 학생계정

     

    GITHUB

    - Group

    - Repository (서버와 ui 나눌 수 있다.)

      - api server

      - ui

     

    GIT

     

    1. branch (main) 작업공간 -> 여러개의 브런치를 생성할 수 있다. 

    2. tag(태그) / 북마크 release 시점이다.

    3. commit

     

    git branch

    commit history를 관리하는데 데이터를 저장하는 시점을 관리한다.

     

    v1 - v2 - v3

     

    git commit

    git push

    git status

     

    TOOL

    intelij (androidstudio)

    eclipse

    sourcetree

    vscode

     

    ■ git bash 이용해보기

     

     

    mkdir 파일명 : dir 생성하기

     

     

    cd  파일명/ : 해당 파일로 이동하기

     

     

    pwd : 현재 내가 있는 경로를 말해줌

     

     

    git init - 깃 생성

     

     

    git branch -M main : 브런치 이름을 변경

     

     

    touch text.txt : 텍스트 파일 생성

     

     

    git status : 깃 상태 확인

     

     

    git add {filename} : filename 을 추가한다. 

    git add -A : 모든 파일을 추가한다.

     

    ※ 참고

    github 계정 정보를 입력 

    git config --local user.email {email}

    git config --local user.name {name}

     

    git config user.name
    git config user.email

     

    :qa 로 나온다.

     

     

    git commit -m "first init" // 커밋 메시지와 함께 commit

     

     

    git log / 커밋

     

    ■ 정리

    mkdir git-study
    cd git-study
    touch text.txt
    git config --local user.name {이름}
    git config --local user.email {이메일}
    git add -A
    git commit -m "first init"

     

    ■ 불필요한 파일 무시하기

     

    gitignore 파일 생성하고 클릭하여 무시하고 싶은 파일명 작성하면 무시된다. 

    주석을 제외해야 정상적으로 제외된다. 

     

     

    다시 확인했을 경우 .DS_Store 파일이 제외된 것을 확인할 수 있다. 

     

    ■ github 연동하기

     

     

    마크다운 에디터

    readme file 을 생성할 것인지 체크여부

     

     

    github 웹사이트에서 repository 생성하고 해당 주소를 넣어준 뒤 

    다시 git remote -v 처리를 해준다.

     

    나의 경우 글로벌로 이미 로그인 돼 있어서 바로 넘어갔다. 

     

     

    git push origin main 처리해준다. 

     

     

    다음과 같이 repository 생성 되고 정상적으로 들어간다. 

     

    ■ 충돌날 경우

     

     

     

    git pull origin main 을 통해 충돌된 것 받아오기 가능

     

    ■ git 버전을 되돌리는 방법

     

     

    git log를 통해 전체 커밋 내역을 본다. 

    되돌리고자 하는 주소를 복사한다. 

     

     

    git reset --hard 복사한 주소를 통해 비워준다.

    그리고 다시 git pull origin main 을 통해 내용 받아온다. 

     

    1. reset : 아예 이전 내역 삭제처리하면서

    2. revert : 새로운 커밋을 만들면서 되돌리기 

     

    git undo : 커밋이 다시 돌아감

    git stash :  작업이 다시 초기화 , 메모리 영역에 저장

    git pull origin main : 

    git stash pop : 메모리 영역에 저장된 것이 다시 꺼내져 이때 발생되는 충돌을 해결

     

    push / pull(받는거)

     

    ■ 마지막 정리

    mkdir 파일명 : dir 생성하기

    cd 파일명 : 해당 파일로 이동하기

    pwd : 현재 경로 확인하기

    git init : 깃 생성

    git branch -M main : master 에서 main 으로 branch 변경하기

    touch text.txt : 원하는 파일 생성하기

    git commit -m "commit 메세지 입력(맘대로)" : 커밋 메세지 입력하기

    ----중간에 나오는 것은 :qa 처리하면 된다.------

    git log : 커밋

    ----파일 찾지 못한다면----

    git status : 상태 확인하기

    git add -A : 전체 추가해주기

    git commit -m "원하는 메시지"

    git push origin main : 다시 넣어주기

     

    ■ vs코드로 해보기

     

    ■ 브런치 하나로 작업 시

    소스코드 푸시 전에

    git stash

    git pull origin main

    git stash pop -> 충돌 해결

    git push origin main

     

    2. 브런치 나누는 경우

    main -> 작업이 된 소스코드

    2-1) 작업하는 사람 기준

    feat/hadine

    heat/siggy

    메인이랑 머지할 때

    먼저, main -> feat/hadine에 머지

    feat/hadine -> main에 머지

     

    커밋 메세지 컨벤션 (작성)

    feat : 알림 기능 추가

    fix : 알림 기능 이슈 해결

    chore:

    refactor

    ~~~내용

    2-2) 작업 단위로 나누는 케이스

    feat / header

    fix/이슈해쉬

     

    ※ 

    lf : \n

    crlf: \r\n

     

    window

    git config --global core.autocrlf true

     

    ■ Morpheus 프로젝트 안드로이드 아이콘적용

     

     

    아이콘 다운로드

     

     

    파일 붙여넣기

     

     

    AndroidManifest.xml에 @mipmap/ic_launcher 넣어주기

     

     

    원하는 아이콘으로 변경 완료

     

    https://icon.kitchen/

     

    IconKitchen

    Cook up app icons for any platform

    icon.kitchen

     

    ■ 이미지 업로드(모피어스) 

     

    npm i -g http-server

     

    cmd 실행

    cd 실행할 폴더위치

    기본 사용법: http-server -p 5500 -C 1

     

    simple json server

    db  역할을 json이 대신해주는

     

    https://github.com/yb-k/simple-json-server

     

    GitHub - yb-k/simple-json-server: use simple json server

    use simple json server. Contribute to yb-k/simple-json-server development by creating an account on GitHub.

    github.com

     

     

     

    ■ vue

     

    SSR - jsp, 타임리프

    CSR - vue, angular, react, svelte (서버에 대한 영향을 줄인다)

     

    SinglePageApplication

    MultiPageApplication

     

    Vue

    -Vue 화면을 제어하는 js 라이브러리

    1. 선언형 프로그래밍

    2. Component 단위 개발

    3. 복잡한 브라우저 생태계에 대응 / nodejs

    크로스 브라우저 여러~ 전처리 과정이 필요.

     

    node 프로젝트 위에서 번들링 작업

    ESLint

    Babel (크로스 브라우저)

    PostCss (CSS 전처리)

    Tyescript / Sass

    Bundle -> Webpack, vite, rollup, esbuild

     

    js 

     

    관심사의 분리

    html

    css

    js

     

    하나의 컴포넌트에서 html, css, js

     

     

    * jQuery를 쓰지 않는 이유?

    프로그래밍 방식에서의 차이

    jquery, 바닐라스크립트(js)

    명령형 프로그래밍 언어를 사용

     

    vue, angular, react
    선언형 프로그래밍 언어

     

    e2e

    종간 단 테스트

    cypress

     

    package.json 이 있는 경우 node 프로젝트이다.

    node_modules -> npm install 시 다운로드 되는 모듈 경로

     

    package.json -> 노드프로젝트 설정 파일

    -scripts : 실행 할 수 있는 스크립트

    npm run {scripts}

    - dependencies : 실제 소스에 영향이 가는 (포함)이 있는 라이브러리

    vue, jqery, moment, dayjs, swiper, sweetalert2, lodash

    - DevDependencies : 소스에 영향이 가지 않는 라이브러리(TOOL)

    typescript, webpack, vite, babel, rettier, 등등

     

    node 번들링 -> 브라우저가 읽을 수 있는 파일로 변환(압축, 난독화)

     

    node프로젝트

    vite 번들러

    .vue -> 브라우저가 읽을 수 있는 html, css, js

    npm run build

     

    webserver

    contextRoot = '/web'

     

    vite 설정 파일에서 관리.

    assets / 정적 리소스

    components / 재사용 가능한 최소단위, 컴포넌트들의 집합

    views / spa에서 대규모 어플리케이션 구축을 위한 라우팅 설정

    stores / 전역적으로 관리해야하는 데이터 저장

    views/ 페이지 단위 컴포넌트

    public / 정적 소스 (카피만)

     

    + composables / composite api
    + hooks /hook apis

     

    vue

    virtual(가상) dom

    1. DOM보다 훨씬 가벼움.

    2. 렌더링 비용을 최소화 하기 위해서.

     

    <div>{{message}}</div>

    state (상태 중심의 개발) const state= reactive({message: ' ' })

    state.message = 'update message';

    sub pub pattern (선언형과 관련)

    데이터는 단방향으로 위에서 아래로 흐름.

    state

    부모컴포넌트 (상태)

    자식컴포넌트 (상태)

     

    html DOM (Document Obect Model)

    DOM

    v-dom

     

    ■ 모피어스앱 이미지 업로드

     

     

    해당 부분이 있어야 모피어스 사용 가능하다. 

     

    ■ 예정

    - sourcetree git push 예제

    - empty-morpheus / simple-json-project 같이 해서

    이미지 업로드하는 예시 하나

     

    https://fontawesome.com/icons

     

    Font Awesome

    The internet's icon library + toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome.

    fontawesome.com

     

    fontawesome

    swiper

    jquery

    sweetalert2

    dayjs

     

    * 채점기준

    1. 개발자로서

    구현력

    클린코드x 동작하여야함

    문제해결능력

    spring security

    spring batch

    jwt

    ws

     

    2. 임원진

    1. 보여지는게 큼

     

    * 마지막 시험

Designed by Tistory.