배움 __IL/TIL 1기

TIL : 8번째- 221208 [12-1-목]

Mo_bi!e 2022. 12. 8. 21:51

※ 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