※ Keep in mind
본 내용은 웹개발과정의 강의 중 내용을 복습을 위해서 메모한 것에 불과한 것입니다. 이러한 연유로 강의내용을 오인한 나머지 오기재 및 불기재가 있을 수 있으니 '참고'만 해주시길 바랍니다. 저의 경우에도 본 내용을 단순히 읽은 것이 결코 저의 것이라고 생각하지 않습니다. 본 내용은 복습를 위한 초기 내지 중간 과정에 불과한 것이고, 이후에 내용을 보충 후 인출 및 설명하기 과정이 있어야 비로소 복습의 단추가 어느정도 마무리 되어간다고 볼 수 있습니다.
따라서 당초에 본 내용은 비공개였습니다. 그럼에도 불구하고 본 내용을 공개한 점은 함께 공부하는 동료들과 나눔을 바탕으로 배움과 성장의 공진화라는 소기의 목적을 달성에 어느정도 도움이 될수 있기 때문이라고 생각합니다.
I. git 블로그 만들기
II. Intro : 지난시간 복습
if 문으로 5개 만들었음 > 무언가 이상함?
III. 제어구조
1. 메뉴 출력
(1)if문
1) else - if 문
앞 조건이 아닌경우만 조건 비교
2) else
그 외의 경우
(2) switch문
-사실 메뉴구현은 else - if가 바람직하지는 않다. (배타적적실행이 가능하긴 하지만)
집안의 if 형제중 막내(마지막 else if)선택은 결국 앞에서 조건선택 다 거쳐야 함 (막내 항상 늦게실행)
즉 가독성(조건문이 하나)과 처리시간에서 이점있음
-그러나 스위치처럼 해당부분으로 점프해서 실행 함
이 경우 break 를 쓰면 벗어날 수 있다. (각 케이스마다 써주어야한다)
case 블럭안밖 상관없음
-한편 이 경우 메뉴 구현 시 메뉴 해당 숫자 외 다른 숫자를 입력하면 문제시 된다
이러한 경우에는 default 를 이용하면된다. (like: else)
(3) 중첩된 제어구조 벗어나기
ex : while (for ( switch) ) ) [3중 제어구조]
break 는 switch 만 나갈수있지 그 이상 나갈수 없다
과거 C에서는 go to 문을 사용했다.
그러나 go to 는 라벨문으로 써서 하면은 블럭범위도 쉽게 파악할수 없는 소스코드 라인으로 이동하게 된다(동서남북 마음대로이동) 그래서 자바에서 없어짐
이 경우 중첩문을 벗어날 수 없게 됨
한번 더 벗어나는 방식으로 break에다가 라벨을 이용해준다.
선언한 라벨위치로 간다.
라벨은 소문자로 하면은 변수처럼 보일 수 있어서 '대문자'를 이용한다.
NEWLEC: //브레이크 라벨 가독성을 위해서 위에 둔다
while(answer == 1) {
.
.
.
.
.
.
break NEWLEC;
}
(4) for문
원하는 만큼만 반복하게끔 할 때
for 이전에 while로서 초기 형태
int i = 0;
while(i<3)
{
System.out.printf("%c",'A');
System.out.print(',');
i++;
}
while문으로도 가능하지만 3개 박자가 모두 떨어져있어서 놓치거나 번거롭다. 그래서 한곳에 모우기 위한 방법으로 for문을 쓴다.
<for문을 할 때> : 위와 동일한 코드
for(int j = 0 ; j<3 ; j++) {
System.out.printf("%c",'A');
System.out.print(',');
}
<for 문 잘못사용 용례> == while 문임
//1
for( ; j<3 ;) {
System.out.printf("%c",'A');
System.out.print(',');
}
//2
for( ; true ;) //무한loop
//3
for( ; ; ;) //true
바람직 하지 못한방법 들임
III. git 이용 관련 (버젼관리도구)
꾸준하게 조금씩 배우면서 이용해아 함
1. git 이해하기
(1) 버전관리란
1)사본의 필요성과 버전
과거 버전관리는 사본을 두고 함, 그러나 저장공간차지
버전관리 장점 : 과거 원하는 시점 상태로 돌아갈수도 있고, 거기서 다시 원래대로 돌아갈 수 있음
커서조작만으로 상태가 바뀜
(2) 버전관리 도구의 종류 / CS용-연결형 버전관리
1) 버전관리 도구들
DVS / VSS / GIt
Git은 분산형 버전관리도구임
분산형 버전관리도구? 다른거도있음?
클라이언트서버형 / 로컬형 / 분산형
2) 버전 관리 도구가 없는 상태의 팀작업
같은 파일 동시에 작업 시 한명의 작업은 덮어 씌어짐 (기껏일했는데 안한것으로 간주될수도????...)
따라서 이 경우 한명이 가져간 것, 못 사용하게(못 덮어씌우게) 해야함
관리자가 못하게 락 함 (롤백/ 락킹)
이게 좋기는 하지만 트렌드하지않음
왜냐 기존 것은 local 환경임 (같은 시간,장소에 있어야 효율적 == 트렌드X)
오늘날 비대면인데 VPN써도 되나 잘끊어짐
타국일때는 시간도 장소도 다름
<분산형의 기원 : 오픈소스인 linux 개발 시, 수백만명이 같은장소시간에 가능?>
유닉스는 동시에 여러명 멀티태스킹으로 이용한다
이 경우 높은 성능이필요하다
이후 인텔이 멀티태스킹이 286부터 가능해지고, 유닉스처럼 이용가능해짐
이러다보니 전세계에서 동시에 만들어보자
but. 기존방식은 바람직 X
3) 분산형 버전관리도구 - 비연결형
시공간다르고, 끊겨도 됨
하지만 각자만들어서 연결끊기고 해도 되는데, 합칠 때 어려움이있다.
이때 도구가 바로 git
git은 주로 로컬버전관리도구임
버전 시간, 수정내용 확인하고 같이 모여서 merge작업을 한다.
하지만 사람이 직접 merge작업은 매우 힘들다.
git은 명령한번이면 깔끔하게 된다.
<특징>
1 분산형 & 선형X & 네트워크독립적
2 로컬버젼관리 -> merge
(3) git 도구 설치하기
이 경우 git Bash / git GUL 가 있다
주로 Bash를 이용함
1. 보충
(1) 화요일 내용 연습
2. 회고
(1) switch 문에 대한 필요성(가독성과 처리시간)을 이해하게 되었다.
이제 if문 대신에 switch를 좀 더 이용보도록 해야겠다.
(2) break 를 단순히 가장가까운 반복문을 나가게끔하는것보다 label을 붙이는 방식을 알게되었다.
break 가 여러개이면 어디서 나가는지 찾기가 힘들 것 같은데 이 덕분에 손쉽게 할 수 있을거 같다.
(3) for문과 while문의 변환을 용이하게 할수 있게 되었다.
(4) 버전관리 도구가 필요 함을 알게되었다.
'배움 __IL > TIL 1기' 카테고리의 다른 글
TIL : 10번째- 221212 [12-2-월] (1) | 2022.12.12 |
---|---|
TIL : 9번째- 221209 [12-1-금] (0) | 2022.12.09 |
TIL : 7번째- 221207 [12-1-수] (0) | 2022.12.07 |
TIL : 6번째- 221206 [12-1-화] (2) | 2022.12.06 |
TIL : 5번째- 221205 [12-1-월] (0) | 2022.12.05 |