분류 전체보기(394)
-
git 브랜치 워크플로
배포했거나 배포할 코드만 master 브랜치에Merge 해서 안정 버전의 코드만 master 브랜치에 둔다. 개발을 진행하고 안정화하는 브랜치는 develop 이나 next라는 이름으로 추가로 만들어 사용한다. 이 브랜치는 언젠가 안정 상태가 되겠지만, 항상 안정 상태를 유지해야 하는 것이 아니다. 테스트를 거쳐서 안정적이라고 판단되면 master 브랜치에 Merge 한다. topic 브랜치(어떤 한가지 주제나 작업을 위해 만든 짧은 호흡의 브랜치)에도 적용할 수 있는데, 해당 토픽을 처리하고 테스트해서 버그도 없고 안정적이면 그때 Merge 한다. 전부 로컬에서 처리한 것. 로컬 저장소에서만 브랜치를 만들고 Merge했으며 서버와 통신을 주고 받지 않았다. 1. git 서버의 저장소를 하나 clone ..
2022.12.11 -
GIT 브랜치
브랜치: 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다. 커밋하면 Git은 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메시지 같은 메타데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체(커밋 Object)를 저장한다. 이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지를 알 수 있다. 최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를합친 Merge 커밋 같은 경우에는 이전 커밋 포인터가 여러 개 있다. 파일을 Stage하면 Git 저장소에 파일을 저장하고(Git은 이것을 Blob이라고 부른다) Staging Area에 해당 파일의 체..
2022.12.11 -
컬렉션 프레임워크
여러가지 컬렉션을 제공하는 자바 라이브러리 -java.util 패키지에 정의되어 있음 *컬렉션? 데이터를 한곳에 모아 저장 및 관리하는 가변 크기의 오브젝트 컨테이너 제네릭으로 여러 타입과 호환되게 구성한 인터페이스와 그 인터페이스를 구현한 클래스로 구성되어 있다. *링크드리스트는 리스트의 자식이기도 하고 큐의 자식이기도 하다 interface Collection //제네릭 타입 E가 컬렉션의 원소 타입 지정 dafault void forEach(Consumer
2022.12.11 -
네트워크 프로그래밍
InetAddress IP 주소와 도메인 이름을 캡슐화하는 데 사용 생성자가 아닌 정적 메서드인 팩토리 메서드 사용해서 오브젝트 생성 /*IP 주소 얻어오는 메서드*/ static InetAddress getLocalHost() //로컬 환경에서만 이용할 때 static InetAddress getByName(String hostName)//도메인주소를 인자로 넣으면 그에 해당하는 ip주소 반환 static InetAddress getAllByName(String hostName) //여러개의 모든 ip주소 반환(서버다운을 대비하여 도메인 하나에 여러개의 ip주소를 만들어 놓아서 여러개임) import java.net.*; class InetAddressTest { public static void ma..
2022.12.10 -
네트워크 기본 용어
기본 제공 패키지 -java.net java.net.http 소켓(socket): 프로세스 간 통신 채널의 엔드 포인트 포트(port): 호스트 내부에서 소켓을 구분 할 때 사용 프로세스에 어느 소켓을 할당했는지 식별하는 용도 포트번호: 16비트 크기 0~1024까지는 특정 응용 프로토콜을 위해 예약(HTTP: 80, HTTPS: 433) Well-known port 라고도 함 프로토콜(protocol): 클라이언트/서버 간 메시지를 교환할 때 지키는 규약 OSI 7계층과 TCP/IP 스택 응용 계층: http같은 네트워크를 웹으로 뿌려주는 역할 전송 계층: 네트워크간 데이터 전송을 책임지는 역할 (윈도우나 리눅스 같은 운영체제가 제공) 네트워크 계층: ip주소를 이용해서 인터넷망을 연결하는 역할 데이터..
2022.12.10 -
람다 표현식
자바를 함수형 언어처럼 사용할 수 있게 하는 문법 함수형 언어? 데이터 처리를 수학적 함수의 계산으로 취급 가능 1. 표현 방법 람다 연산자 '->'를 기준으로 선언부와 구현부로 나뉨 (타입 매개변수) -> {실행문} 선언부 구현부 예) () -> 123.45 //double myMeth() { return 123.45; }와 같은 뜻 (n) -> (n%2)==0 //bool myMeth(n) {return n%2==0 } 와 같은 뜻 인자가 위의 예처럼 하나만 있는 경우 괄호 안쓰고 n -> (n%2)==0 이렇게 써도 됨 2. 특징 람다 표현식은 리턴 타입을 명시할 필요 없음 메서드와 달리 이름도 없음 (익명 함수라고도 함) 메서드와 달리 특정 클래스에 종속되지 않는다. 예외처리도 가능 메서드의 인자..
2022.12.10