[NHN Academy]

    [개발환경] Git 기초 사용법

    👉fork는 완전히 다른 형태로 진행하고 싶을 때. 연관성을 띌 수도 있다. 포킹해서 가져와서 정책이나 기능을 이어가는 별도의 프로젝트를 만들겠다는 의지. clone은 정책이나 기능을 이어가는게 아니라 그냥 똑같은 사본을 하나 더 만드는 것!! 있는거를 복제해서 쓰는 것. 기존 프로젝트를 벗어나지 않는다. 저장소 생성, 복제, 파일의 상태와 커밋 커밋: 파일의 변경사항을 깃 저장소의 히스토리의 하나로써 저장하는 걸 말한다. Gitignore 빌드 결과물 혹은 임시 파일 등은 굳이 버전관리를 할 필요가 없다. .gitignore라는 텍스트 파일을 만들어서 한줄씩 무시할 파일 이름의 패턴을 적어주면 된다. https://www.toptal.com/developers/gitignore/ gitignore.io..

    [개발환경] 2일차 Gradle

    Gradle 안드로이드를 위해 만들어진 빌드 툴 장점: 스크립트 언어기 때문에 좀 더 유연하게 개발을 할 수 있다. 멀티 프로젝트 지원. 단점: 빌드 스크립트 언어와 DSL에 대한 학습 필요. gradle의 스크립트 초기화 스크립트: init.gradle 설정 스크립트: settings.gradle 빌드 스크립트: build.gradle build.gradle: 라이브러리에 내 프로젝트가 의존한다면 의존성 설정도 여기에 넣음 필요한 의존성을 끼워넣으면 된다. 라이브러리, 프레임워크 라이브러리와 프레임워크의 차이?! 둘 다 누군가가 만들어 놓은 걸 쓰는 건 동일하지만.. 라이브러리는 나의 코드와 상대방의 코드를 호출해야 하는 경우 내가 주도권을 가지고 상대방의 코드를 호출하는 경우 log라는 라이브러리에 ..

    스레드

    큐는 내가 처리한 데이터 대부분이 줄을 세워서 순차적으로 처리가 된다. 큐를 구현할때 배열, 링크드 리스트로 구현하는 방법, 여러개가 있겠지.. 알아야할 것은 큐다. 어떠한 프로그램을 돌리는데 같은 것을 수 없이 함. 프로세스에 올리면 영역을 계속 같은 걸 써야하잖아 감당이 안되기 떄문에 등장한 개념이 스레드. 스테틱, 힙, 코드를 공유함. 별도로 안 잡아도 됨. 하지만 스택 영역은 동작과 밀접한 연관이 있기 때문에 같이 잡을 수가 없다. 레지스터도 공유 불가능. 스레드를 쓰면 문제는 static, heap은 공유한다. static 영역을 공유하면 여러 코드가 한꺼번에 공유 영역에 접근할 수 있음. 스레드 1이 참고 중인 영역을 스레드2가 바꿔버리면 문제가 생긴다. 그래서 생긴 개념이 락 어떠한 자원을 ..

    스레드: 스레드 풀

    Thread Pool Thread Pool의 장점: 스레드 생성과 삭제에 따른 시간과 리소스를 절약할 수 있다. Thread Pool 사용시 주의할 점 Deadlock: 다중 스레딩과 관련된 모든 프로그램에서 교착 상태가 발생할 수 있다 작업간 데이터 교환이 필요한 경우, 실행 작업과 대기 작업의 교착 상태가 발생할 수 있다. Thread Leakage 비정상 종료에 의한 실행 종료 Resource Thrashing 지나치게 큰 스레드 풀을 사용할 경우, 스레드간 컨텍스트 전환시 느려지는 문제가 발생할 수 있다. Thread Group Java는 단일 객체에서 여러 스레드를 그룹화하는 편리한 방법을 제공한다. 이러한 방식으로 단일 메서드 호출로 스레드 그룹을 일시 중단, 재개 또는 중단할 수 있다.

    배열

    배열의 초기값 ▷ 배열을 생성할 때 각 구성 요소에 넣는 초기값을 기본값이라고 한다. 자료형 기본값 byte zero, 곧 (byte) 0 short zero, 곧 (short) 0 int zero, 곧 0 long zero, 곧 0L float zero, 곧 0.0f double zero, 곧 0.0d char null 문자, 곧 \u0000 boolean 거짓, 곧 false 참조형 null 참조, 곧 null -> 기본값은 '일부러 값을 설정하지 않아도 기본으로 값이 설정된다'는 사전적 의미가 있다. 배열의 구성 요소 뿐만 아니라 클래스의 필드 (인스턴스 변수와 클래스 변수)도 기본값으로 초기화 된다. 배열의 구성 요소는 자동으로 0으로 초기화되는 규칙이 있다. ▷ 배열의 요소 값을 초기화하며 배열..

    공대 2호관 전산실 5번 문제: 다형성과 공변성, 메서드 오버라이딩

    https://kizoo.gitlab.io/docs/archive/java/005/ 5 class F { X m() { System.out.println("F"); return new X(); } } class G extends F { Y m() { System.out.println("G"); return new Y(); } public static void test() { F f = new G(); f.m(); } } G.test(); G G가 찍히도록 X와 Y를 정의하세요. 이와 같 kizoo.gitlab.io class F { X m() { System.out.println("F"); return new X(); } } class G extends F { Y m() { System.out.print..

    공대 2호관 전산실

    https://kizoo.gitlab.io/docs/archive/java/002/ 2 HashSet으로 1들의 집합을 만듭니다. import java.util.*; class Sameness { public static void 집합크기(Set 집합, Object[] elements) { Collections.addAll( 집합, elements ) ; System.out.println( 집합.toString() + "의 원소 수는 " + 집 kizoo.gitlab.io 1번) identityHashCode HashCode 1. 해쉬코드가 같은 경우에는 equals를 한번 더 하는데 그래도 같으면 같은 객체로 취급한다. 해쉬코드가 같다고 같은게 아니라 equals해서 나온 결과 마저도 같으면 같은 객체..

    값 전달과 참조 전달

    https://kizoo.gitlab.io/docs/archive/java/001/ 1 Java에서는 call-by-value로 인자 값을 주고 받습니다. class 물체 { private int n = 0; public 물체( int m ) { n = m; } public void modify( int m ) { n = m; } public String toString() { return "" + n; } } class ParameterPassing { public stati kizoo.gitlab.io 1. 스택에 복사본이 생김. 값이 변경된 후 종료되면 사라진다. 2. source의 힙 주소값을 받음. 주소 자체를 받는게 아니라 주소 값을 받아 변경하기 때문에 참조 존달이 아닌 값 전달이다.

    구문트리 계산기 만들기

    계산식을 구문 트리로 변환하여 계산 이진 트리 트리 탐색 재귀 호출법 형태소 분석기 만들기 정수를 이용한 사칙 연산 계산기 적용 연산자: + - * / (,) 연산자 우선 순위 1순위: ( , ) 2순위: *, / 3순위: +.- 이진 트리를 이용한 구문 트리 생성 연산자 노드 이진 연산자가 포함되어 계산이 필요한 노드 이진 연산자에 필요한 피연산자 노드를 포함함 피연산자 노드 연산자 노드의 피연선자가 될 수 있는 노드 상수/ 변수/ 연산자 노드 이진 트리 그래프에서 자식 노드 수가 2개로 제한되는 그래프 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조 트리 탐색: 특정 노드를 루트라 가정할 때, 루트는 3개의 구성 요소 (자신, 왼쪽 자식 노드, 오른쪽 자식 노드)로 이루어짐. 하나의 ..

    day1

    프로젝트 생성 완료 -프로젝트 관련 기본 요소 생성 -디렉토리 구성 1. src/main/java 사용자가 작성하는 소스코드 위치 2. src/test/java 테스트 코드 위치 3. pom.xml Maven 설정 파일 프로젝트 리소스 생성 -리소스 생성 위치 선택 : Java, Resource 등 해당 위치 선택 -생성하고자 원하는 항목 선택 : 마우스 우측 버튼 클릭, 팝업 메뉴에서 New 선택 후 생성을 원하는 종류 선택 -항목 1. Java Class: 자바 클래스 파일로 주어진 이름의 클래스가 파일로 생성됨. 이때, class, interface, enum, annotation 등 선택 가능 2. File Overview 클래스 필드와 메소드 - 속성과 기능(동작) 필드는 최소화하라: 임시로 사..