[2023.10.04] 개발자 교육 9일 차 : 강의-복습, 클래스 쪼개기, Git과 GitHub [구디 아카데미/김승수 강사님]

DaramGee·2023년 10월 4일
0

오늘 정리

클래스 쪼개기? 코딩은 단순히 코드를 나열하는 것이 아니라 크게 보며, 적절히 조립하는 식으로 접근하는 것이 필요하다.

Git(깃)이란? 형상관리, 버전관리를 하는 소프트웨어로, 협업을 할 때 잘 쓰인다.

복습

  • 클래스 쪼개기(무조건 나눠보기)
    • 변수, 메소드가 같은 클래스에 있는 경우
      • 복사본이 아닌 원본 하나로 유지, 관리되고 있음.
      • 내 안의 변수는 인스턴스화x, 변수만으로 초기화 가능
      • 웹에서 유지란 쿠키와 세션 → 변수의 완결, 종착점
  • 변수 타입
    • 가로 방향
      • 서로 관계가 있는 정보(그 사람의 키, 혈액형, 나이 등)
      • 참조형 타입으로 설계 필요
    • 세로 방향
      • 2500만 가입자의 이름 - 배열
      • 같은 타입만 담을 수 있음.
  • 어떤 경우에 전역변수로?
    • 비용의 무네 고민 - 서버부담

강의 내용

  • 야구숫자 게임 ⚾
    • 임의의 세자리 맞추기(정답이 담긴 변수는 유지되어야 한다.)

    • but, 새게임을 누르면 변해야 한다.

    • 틀렸을 때 힌트제공 필수

    • 숫자가 존재하면 ball 카운트 증가 → ball 지변

    • 자리까지 일치하면 strike 카운트 증가 → strikt 지변

    • 순서

      • 클래스 하나에 구현
      • 클래서 두 개로 나눠서 구현(코딩하는게 아니라 조립하는 개념으로 접근)
      • 클래스 세 개로 나눠서 구현(숲을 보기)
    • 게임 코딩 효과

      • 전역변수로 했을 때 역할, 기준(결정)
      • 메소드 설계가 중요한 이유 공감
        • 리턴타입과 파라미터 사용에 대한 기준 갖게 됨(되고 안되고의 문제해결함)
      • static이 아니라 생성자를 통해 클래스 사이의 관계를 코드로 표현해 본다.
    • 화면 구현 효과

      • 메소드 설계 판단의 기준 가질 수 있음.
      • 화면이 없는 상태에서 생각하지 못 한 전변이 존재할 수 있음.
    • 콜백메소드

      • 예 : actionPerformed
      • 버튼을 눌렀을 때(JTextField에서 엔터를 쳤을 때), JVM이 (하드웨어-키보드-입력장치를)감지해내고, 그 때 인터셉트해서 필요한 처리를 개발자가 해낸다.
      • dependency injection(Spring Frame Work)
    • clean
      - 프로젝트 작성에 문제가 없을 때 비웠다가 다시 컴파일 진행

      else if(e.getSource()==jtf_user) {
      			//엔터이벤트 적용 시 후처리로 JTextfield에서 문자열을 빈문자열로 교체함.
      			//JTextArea가 null이었지만, initDisplay 에서 인스턴스화를 마쳤(생성)으므로, 
      			//NullPointerExceptrion이 발생 x - UI통해 테스트 할 때 관전포인트
      			//숫자 입력 후 JVM이 ActionPerformed에서 호출을 하니 내부에서 출력해봄.
      			System.out.println(jtf_user.getText()); //찍히는지 확인해보기 
      			//재사용성을 위해 메소드 호출을 할 수 있도록 연습, 메소드로 이관했을 때 동일한 효과 나와야 함. 
      			//cnt = cnt + 1;                               //이벤트가 감지될 때 마다 자동으로 호출되고, 후처리를 맡김
      			jta_display.append(++cnt + "회 : "+ jtf_user.getText()+"\n");
      			jtf_user.setText("");
      		}///////////입력하고 엔터 쳤을 때

  • Git (for 협업)

    • 형상관리(버전관리) 소프트웨어 (깃허브에 소스 업로드)
    • VScode tool로 깃 활용 예정
    • 순서
      • git_2023폴더→git_basic폴더 생성
      • woking directory 생성
        • untracted/tracted로 나뉨.
        • cmder here
    • git 명령어
      • clink update →업데이트
      • git init → 숨김파일 git 생성됨
      • ls -al → 폴더에 숨김 파일 목록 확인
        • 대부분 리눅스 명령어임.
      • echo a > a.txt →숨김파일 생성
      • git status → add의 여부를 표시해 줌.
      • git add 파일명→ tracted로 옮겨짐(파일명 대신 . 찍으면 한번에 add)
      • git commit -m “파일, 파일 …” → 커밋하기
      • git rm -- cached 파일명 → untracted로 다시 옮겨짐
      • git hist → commit 내용 확인 가능
      • git log → hash값 확인 가능(추적 가능)
        • HEAD????

          $ git hist
        • [2023-10-04][861963c] | a.txt, b.txt {{Jeeyeon-Lee}} (HEAD -> master)
      • git checkout → HEAD 변경
      • git branch -d tomato → 가지 삭제
      • git merge 헤드명 →해당 헤드와 합침
      • ls → 목록확인
    • git 사용 시
      • 퇴근할 때, push, 출근할 때 pull
      • 작성한 코드를 추가하여 git push
      • pull하지 않고 추가작업을 할 경우 충돌(git → conflict) 발생 위험이 있음.
    • git 설정 확인
      D:\git_2023 (master)
      $ git --version
      git version 2.42.0.windows.2
      
      D:\git_2023 (master)
      $ git config --global -e
      
      D:\git_2023 (master)
      [core]
      	editor = code
      [user]
      	name = Jeeyeon-Lee
      	email = jeeyeon118@gmail.com
      [core]
      	autocrlf = true
          editor = code --wait
      [pull]
          rebase = false
      [diff]
          tool = vscode
      [difftool "vscode"]
          cmd = code --wait --diff $LOCAL $REMOTE
      [merge]
          tool = vscode
      [mergetool "vscode"]
          cmd = code --wait $MERGED
      [alias]
          st = status
      	hist = log --graph --all --pretty=format:'%C(yellow)[%ad]%C(reset) %C(green)[%h]%C(reset) | %C(white)%s %C(bold red){{%an}}%C(reset) %C(blue)%d%C(reset)' --date=short
      [mergetool]
      	keepBackup = false

  • GitHub
    • 1일 1커밋
  • 실전연습/작업지시서
    • workspace_java 하위 폴더로 java_20231004 생성
      • cmder프로그램에서 java_20231004로 이동
      • git init 엔터
      • 깃허브 웹레포 생성
        • 리드미 : 프로젝트에 대한 설명 → html 태그 사용 가능
      • git remote add origin 깃레포 주소
      • 로컬에서 수정한 내용, 깃허브 웹레포와 동기화 되도록 git push함.
      • 깃허브 사이트에서 새로고침을 하여 추가된 내용을 확인한다.
        • 단, 추가된 내용을 master 브랜치에서 확인해야 한다.
        • 푸쉬 후 확인 master 브런치
          
    • 확장프로그램 추천 - octotree

강의 마무리

  • 피보나치 수열을 a1, a2, a3, a20항까지 출력하는 프로그램을
    작성하시오.

a3 = a1 + a2;

for문 사용, println()

  • int 1차배열 - 100개 - int[] is = new int[100];
    0부터 9사이의 임의의 숫자로 초기화를 하고
    채번된 숫자를 빈도수를 출력하는 프로그램을 작성하시오.

0개의 댓글