bell_a 2023. 1. 20. 17:56

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당함(따로하는 것을 추천)

주의 : 화살표가 위아래 모두 있는 경우 ? 내 파일 COMMIT을 먼저한이후(안그럼날아갈수있음) > PULL > PUSH

+ 충돌

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값이 없는 경우라는 조건이 불가하다) "회원이 없다"는 문구가 나올수 있도록 처리한다.

 

③ 로그인

일치하는 값이 있는지 true/false값이 필요하므로, boolean타입에 담아서 반환한다.
위의 변수를 그대로 담아와 비교하여 결과 출력.

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코드 활용 => 요구사항정의서, 테이블명세서 작성

팀끼리 겹치면 안됨