230120_18일차 : GIT / 자바
1교시, 2교시, 3교시, 4교시 - GIT : git&GitHub / git 실습 / GitHub 실습
1. git & GitHub
- 둘의 설명
+ 이클립스의 워크스페이스 : 코드만 존재 & 수정내역은 관리 X => Git로컬저장소 : 코드 및 수정내역 관리
- GitHub을 사용하는 이유
① 여러명의 개발자의 소스코드를 함께 공유(업로드,다운로드)하면서 협업이 가능
② 개인 포트폴리오를 위해 (참고 페이지 : https://github.com/Jesuisjavert )
③ 오픈소스 공유
- GitHub 동작방법 (Commit필수)
2. git 실습
① git 프로젝트 세팅 : 프로젝트 우클릭 - Team - Share Project (Configure Git Repository(깃의 저장소를 확인하기)) : 우측 create - 기본설정(c드라이브 Users 내부 repository) / branch name : 작업시 여러 가지를 칠 수있으며, master라는 이름으로 진행하겠다 - Finish => Share Project 기본화면:실제공간(Current Location)과 백업공간(Target Location - 방금 설정한 공간) - Finish => 우측 프로젝트가 바뀐다 ( ? : 코드들과 수정이력을 로컬에 Commit(저장)이 안된경우 / 프로젝트명 우측에 [repository master]는 이전에 선택한 branch name이 들어감)
② commit 하는 방법(commit전 저장필수) : 프로젝트 우클릭 - Team - Commit -아래화면
파랑) commit이 안된 코드(백업x) // 옮기는 방법 : 우측 상단 + (한개만 이동(선택이후)) , ++(모두 한번에 이동), 드래그가능
빨강 ) commit할 코드
노랑 ) comimit 메시지 : 저장메시지 작성(필수). 나중에 수정내역들을 커밋메시지로 확인 / 날짜, 이름, 수정내역, 수정이유 / 서버 사용시, Committer 이용 / Commit and Push(깃헙사용시 가능)
③ 저장한 이력확인하기 : 프로젝트 우클릭 - Team - Show in History - 파일선택 - 우측 파일선택 & 더블클릭 - 좌(변경)/우(기존)
④ 원하는 시점으로 복원하는 방법 : Show in history 해당 이력 우클릭(클릭한 시점까지만 복원됨) - Reset - Hard(완벽하게 돌아감-주의:그 시점을 기준으로 그동안 만든 모든파일, 커밋내역까지 지워진다.) - Reset
3. GitHub 실습
① GitHub내 그룹 초대받는 경우 접속방법 : 메일로 메시지확인 & 로그인 - 메인페이지 - 좌측상단 내아이디 클릭 ▼ - 해당 그룹 접속 - 좌측 view organization
② 팀 만들기(팀장만 가능) : 위의 그룹페이지 - 상단Teams - New Team : 작성 후 - create Team
+ 팀명수정 : 상단 Settings에서 가능
③ 팀원 초대 : 상단 Members - Add a member (유저네임 : 우측 본인이미지 클릭시 확인가능) : 유저네임 검색하여, invite
④ 원격저장소 만들기(팀장만) : 상단 Repositories - Create a new repository : 이름, 설명, public
+ 원격저장소에 팀원권한주기 : 상단settings - 좌측 Collaborators and teams : Add team or people 검색 &선택 - 권한: Admin
⑤ 팀원 토큰발급(전체팀원 진행) : pull,pus를 하려면 git 아이디,비번 필요/github의 정책
: 오른쪽 프로필 - settings - 좌측 Developer settings - 좌측 Personal access tokens -Tokens(classic) - Generate new token - classic 선택 : 용도, 유효기한, 유효범위 - Generate token - 토큰값(저장필수.발급시에만 보임)
⑥ 프로젝트 PUSH(팀장만) : 프로젝트 생성후 우클릭 - Team - Share Project - 기존그대로(선택가능▼) - Finish
=> 패키지, 클래스 만들고, Commit => 프로젝트 우클릭 - Team - Push Branch master(어느 원격저장소에 저장할것인가) : 깃에서 복붙(그룹 페이지 - Repositories - 우리팀 - 상단 url 복사) , User: tannimommy- 깃헙이메일,ursername / password: 개인토큰값 / 저장체크 > preview > push > 토큰힌트? NO > 정상화면출력(성공시 아래와 같음)close
+ push가 잘되었는지 확인하는방법(그룹 페이지 - Repositories - 해당팀 클릭)
+ 프로젝트 삭제(깃헙): 해당 폴더 클릭 - 상단 ...버튼 클릭 - Delete directory - Commit changes - delete
+ 프로젝트 삭제(로컬) : 주의- Delete project~(완전히삭제) 체크
⑦ 프로젝트 PULL(팀원모두) : 이클립스 오른쪽 마우스 우클릭 - Import - Git : Project form Git - Clone URI - Source Git Repository 채우기 (깃허브 : 그룹 페이지 - Repositories - 우리팀 - <>Code : HTTPS : 주소 복사) - Next : Branch 선택가능 - Next : 로컬저장위치 - Next : 올라간 프로젝트 확인가능 - Finish
⑧ 이후 추가 PULL, PUSH작업 :
다시 PULL하는 방법 : 프로젝트 우클릭 - Team - Synchronize Workspace - 화살표랑 수 확인 - 다시, Project Explorer 프로젝트 우클릭 - Team - PULL
다시 PUSH하는 방법 : 프로젝트 우클릭 - Team - Synchronize Workspace - 화살표랑 수 확인 - 다시, Project Explorer 프로젝트 우클릭 - Team - Push Branch Master
+ Commit and Push : 해당 버튼을 클릭시, pull받을게 있으면 reject당함(따로하는 것을 추천)
+ 충돌
5교시, 6교시, 7교시, 8교시 - JAVA : JDBC(회원정보관리프로그램 - JDBC, MVC패턴/데이터베이스 공유계정 연결/미니프로젝트 안내)
1. 회원정보관리프로그램
- View (Main)
- Model = DTO(JoinDTO)
- Controller(Controller) : Main(View)에서 사용자가 요청하면, Model(DAO)로 보내주는 역할
/ Model(DAO)가 보내준 처리된 결과값을 Main(View)으로 전송
- Model(JoinDAO) : Controller가 보내준 요청(DB저장,삭제..)받고 Data에 직접적인 접근을 하는 코드를 통해 결과값을 받아와, Controller에 다시 보내준다.
① 전체조회 (노랑:갈때/빨강:올때)
+ MVC 다른 페이지에서 '메서드 자동완성' 하는 방법 : 해당 빨간줄 위에서 'created select(메서드명) ~~' 클릭
+ 빨강 ) return해서 받아온 ArrayList<JoinDTO> 타입으로 list에 담고, for문으로 해당 데이터값을 모두 꺼내 출력시킨다. 처음에 임의로 지정해놓은 데이터타입 void는 수정하지않는다(출력문이므로)
+ 빨강 ) 받아온 데이터를 변수에 담았고, 하나로 옮기기 위해 'dto'를 생성자로 생성하여 사용 => ArrayList에 담아야 여러줄의 데이터들을 모두 가져올 수 있으므로 상단에 ArrayList 추가 & 내부에 add추가 => return list => list의 데이터타입으로 상단부 수정
+ select문이 있으면, psmt.executeQuery()문을 사용함.
② 회원검색 (노랑:갈때/빨강:올때)
+ 빨강 ) dto 는 2개의 생성자(전달인자 1개/ 3개)로 쓰일수 있으므로, 위에서 사용한 JoinDTO dto를 다시 아래애서 재사용하여, name만 담고 나머지값은 null 이었던 3개짜리 dto에 모두 담아 다시 리턴해주면 된다.
+ 빨강 ) return 받아온 dto를 담아서, 검색결과가 없는 경우를 고려하여 if문에서 dto의 id가 null인 경우(name은 보낼때부터 있었으므로 전체 null값이 없는 경우라는 조건이 불가하다) "회원이 없다"는 문구가 나올수 있도록 처리한다.
③ 로그인
2. 데이터베이스 공유계정연결
① 이클립스의 해당 프로젝트 src 폴더에서, New - SQL File : 이름(project)넣고 - Finish
② 로컬 계정연결 : Window- Show view - Other - Data Source Explorer - Open - Database Connections 우클릭 - New - Oracle - Next - 상단 나침반클릭 - Oracle Thin Driver 11선택 & 상단 JAR List : ojdbc14.jar 를 remove하고, 8버전가져옴 & 상단 Properties : 아래와 같이 수정 - 아래 Test Connection(succeced) - Finish
③ 공유 계정연결(로컬계정연결 이후 진행함) : Window- Show view - Other - Data Source Explorer - New -Oracle - next - Specify a Driver and Connection Details 내용만 추가로 수정 -
3. 미니프로젝트
1. 목표 : MVC패턴 활용, JDBC코드 활용 => 요구사항정의서, 테이블명세서 작성