0907 객체지향 기본개념 (+깃 저장소)

우 동현·2021년 9월 7일
0

1. 서론

알아두면 좋은것 (+이전시간 복습)

.gitignore

= 원격 저장소에 관리하지 말아야되는 파일 지정해주는 것
프로그램마다 달라짐, tool에 관련된 설정이 다름 **협업에서 중요

파일 내용
/.classpath
/.project
/.settings
/target
**/build
파일 내용 위에 3개는 이클립스 설정파일 (git에 안 올리는 게 좋음 )

cli //반대= gui(graphic user interface)

= command line interface (cli 익숙해지는 게 좋음)

깃 레포지토리 생성

레포지토리 네임은 프로젝트 네임이랑 같게하는 게 팁
주소 복사
프로젝트 - team - shareproject (= cli에서 git init과 동일한 기능)
use or create repository in parent folder of project 체크
create repository 하고 내용 체크 - finish

md 파일 사용이유

md파일 = mark down(html 태그들이 너무많아서 사용)
설명용

git에서 md파일 염탐하는방법

md파일들어가서 raw눌리면 어떻게 만들었는지 나옴

이클립스에서 md 만드는법

설명하고싶은 프로젝트파일 우클릭 - new - file - readme.md 적고 생성
markdown source 에서 적기

임시로 보는 법

이클립스에서 preview 누르기

readme로 자바 소스 적을 때

공백

public class HelloWorld{
}

공백

협업과정

팀원들간 맡은 서브프로젝트한것들 깃으로 커밋하고 jenkins소프트웨어에 git url 주고 세팅해주면 자동으로 빌드해줌
서버에 자동으로 보내주기도함 (배포) - 팀장은 어플리케이션 잘 돌아가는지 확인
팀장이 자기꺼에 paste 해서 에러 테스트하고 퇴근 허락다음날
아침에 출근해서 pull 해줘야함
javastudy 우클릭 team - pull

uml

설계하는 도구 (unified modeling language)
관계들을 표현하는것

참고서적

uml 주의사항

화살표 ( 의존성표시) 향하는 방향의 클래스가없으면 돌아가지않음 02.java ppt p6

static

모든 객체에서 공유함 (클래스에 붙어서 로딩할때 생김 ,하나만 있는것)

2. 본론

깃 저장소

깃허브 토큰 생성 (ex:api 쓸때)

자신 깃허브 프로필 우클릭 - settings - debeloper settings - personal access tokens - generate a personal access token
토큰네임 지정후 만료기간 설정
밑에 권한 전부 체크하기
----- 결과 -----
personal access tokens ( 토큰은 까먹으면 귀찮음)
**Make sure to copy your personal access token now. You won’t be able to see it again!
= (토큰)

깃 로컬 레퍼지토리 삭제 방법

깃 퍼스펙티브 우클릭 - delete repository - 첫번째 항목 (Delete Git repository data and history)만 체크

깃 레포지토리 삭제 방법

레포지토리 settings - 맨밑에 delete - 깃아이디/레포지토리name 입력

이클립스에서 깃 레포지토리 깃 로컬 레포지토리 연결작업(gui방식)

이클립스에서 깃 레포지토리 remotes오른쪾클릭 - create remote - configure fetch 선택후 create
-change - git url입력 - 밑에 user에 git사용자이름 , 패스워드에 깃 토큰에서 발급받은 번호

git에 올리는법 = staging(git add -A)

맨위 프로젝트 - team - commit 하고 git staging 하는것
commit message에 키워드 내용 써주기 (git commit -m "first commit")
push and fetch 버튼 -preview - push

push

연결된 github에 올리는것

pull

git에서 가져오는 것

commit

원본을 로컬 깃저장소에 저장하는것

fetch

원격 저장소에서 로컬 깃저장소에 로컬에 가져오기만 하는 것

남의 코드, 프로젝트 clone하는 방법

누군가 만든 기초 프로젝트 (라이브러리 테스트도 한것 = guide를 주는것임)
=> 기초프로젝트 만드는사람 software architect 역할(부장님)

pull

clone 하려는 프로젝트가있는 깃 저장소의 code버튼 선택 - 깃 url 카피
git 퍼스펙티브 아무곳 누르고 붙여넣기 - next - next - directory는 워크스페이스폴더 지정

프로젝트 등록 import 과정

import하려면 maven으로 프로젝트 만들어야함
.settings
.classpath
.project
가 포함된파일 = 이클립스 프로젝트

임포트작업

깃의 메이븐 프로젝트를 읽어서 pom.xml을 읽고 이클립스 프로젝트로 변경하는 과정
워킹트리 오른쪽 - import project - finish

객체지향 기본개념

객체지향 사용하는 곳

  1. 회계나 연말정산 도메인을 분석할때 객체지향 기법 사용
  2. 데이터 관계분석

ex 도메인 : 도서 대여점
도서대여주인이 도서대여 프로그램 수주
1. 객체 찾기 (기능을 가진,데이터를가진 객체)
찾는 방법 : 의인화 시키기,
기능 : 돈관리,책관리, 고객관리 (이것들을 이용하는게 누군지 의인화)
ex)미녀와 야수에 주전자, 촛대, 시계처럼 의인화시키기
메소드호출 (객체한테명령)
시계한테 몇시냐, 주전자한테물끓여 : 메시지는 (객체가 가지는 기능) 구현단계에선 메소드가 됨
메시지는 개발자 임의로 안됨 : (이문열 책 찾는데 오래걸린다라는 주문이있을때 시작)

객체지향의 첫번째 목표

소프트웨어 변경시 유연하게 대응하기위해 객체지향 사용
ocp (개방폐쇄)
open 소프트웨어 확장 (v1.1,v2,2 )
수정에 폐쇄돼있어야함

추상(Abstract)

공통적인것 모은것

추상화

중요한 것은 남기고, 불필요한 것을 없애는 것(객체 지향에서)

객체지향이 추구하는 것

모든 객체는 재사용이 어려울 수 있다 (추상화 할 수 있기때문)

stack (FILO)

로컬변수를 관리하기위한 jvm의 자료구조
예시
s.push(v)
top = top +1
a[top] = v

pop(v)
top = top -1

jvm 메모리 영역

heap , stack, meathod area

12장.

new

객체는 new로만 만들 수 있음
new : heap 영역에 메모리 인스턴스를 만드는 것
배열 만들 때 도 쓰임 ( = new를 붙이므로 배열은 객체)

다형성(다양성)

= 객체를 다양한 방식으로 효율적으로 사용하는 것

  • 메소드 = 객체의 기능을 사용하는 방법

확장 = 상속 + 오버라이드 + 부모 레퍼런싱

=> 부모클래스 레퍼런싱하는 게 확장성 유리
1.오버라이드 (중요)
앞에 있는걸 못 쓰 는것 = 재정의
뒤에 매개변수 같아야함
2.오버로드
매개 변수 달라도 됨 ( 가변파라미터)
짐을 쌓아놓는것
print (string)
print (int)
print (char)

Tip. 객체간의 연결성을 루즈하게하면 확장성 좋아짐
주차 버스 관계보다
주차 자동차 버스 관계 ( 버스대신 택시 넣을수있음)

인터페이스 (확장성 좋아짐)

추상 메소드들만 모아놓은것 (=기능목록 = 사용설명서 )

  1. 클래스
  • 변수
  • 생성자
  • 메소드
  1. 객체 특징
  • 캡슐화(정보은닉)
  • 상속
  • 다형성
    • 오버라이딩 ***
    • 오버로딩
  • 추상클래스
  • 인터페이스

객체 정의

정보를 효율적으로 관리하기 위하여 의미를 부여하고 분류하는 논리적 단위

정보은닉 하는 법

필드는 기본적으로 private 사용해야함 (정보은닉)

bean : jsp에서 쓰는 오브젝트 (setter / getter를 포함해야함)

getter/ setter 자동으로 만드는 방법

source - generate getter and setters 선택
바깥에서 못읽게하려면 get 부분 체크안하면됨

0개의 댓글