programming

    Java - 연산자 우선순위 (Operator Precedence) 테이블

    연산자에는 우선순위가 있다는 사실만 알고 넘어가자 다 외울 필요는 없음.

    Java - Type

    기본 타입과 참조 타입 (Primitive type & Reference type) 기본 타입 (Primitive Type) 참조 타입 (Reference Type) 데이터의 실제 값 데이터의 주소 값 정수형 (byte, short, int, long), 실수형 (float, double), 문자형 (char), 논리형 (Boolean) 객체의 주소 값을 저장, 8개의 기본 타입을 제외한 나머지 public class main { public static void main(String[] args) { Object object = new Object(); System.out.println(object); } } -->> java.lang.Object@3ac3fd8b -->> @3ac3fd8b 가 메모리에..

    Java - 변수 / 상수 / 타입변환

    변수 (Variables) 데이터의 저장 공간 (String name1 = "Dog"; 에서 name1이 변수이다) 사용 이유: 메모리에 데이터의 저장공간 확보 협업시에 데이터에 이름 (변수명)을 붙여 소통 용이 데이터의 재사용 *변수명은 camelCase로 주로 사용하는데 두번째 단어부터 대문자로 시작해 구분 * 숫자로 시작하는 변수명이나 예약어는 사용 불가 (int 11go; int byte, int class 등) **변수명 짓는 게 가장 어렵다는 말도 있다. 상수 (Constants) 고정된 값, 프로그램 상에서 변해서는 안 되는 수 (생년월일, 원주율 값, 중력값 등등) 자바에서는 c와 다르게 final 예약어를 쓴다. 상수는 선언과 동시에 값을 초기화 해야한다. 예) final ASTRO_GR..

    Java - [문자열] StringTokenizer

    StringTokenizer StringTokenizer 클래스는 문자열을 지정한 구분자로 나눠주는 클래스이다. 이렇게 나눠진 문자열을 토큰(Token)이라고 하는데 Tokenizer라는 말 그대로 문자열을 토큰화 하여 쪼갠다라고 생각하면 될 것 같다. 아래 예제를 보면 "This is a string example using StringTokenizer"라는 문자열이 있는데 This - 토큰 / is - 토큰 / a - 토큰 이런 식으로 쪼개진다. 사용을 위해 java.util.StringTokenizer를 import 해야 한다. 아래는 토큰을 하나씩 출력하는 프로그램이다 import java.util.StringTokenizer; public class studying { public static ..

    Java - [문자열] StringBuilder / StringBuffer

    StringBuilder 클래스 이름 그대로 문자열을 더해서 출력한다. (자세히 정리해서 추가할 것) String 클래스에서 만든 인스턴스는 한번 만들어진 이상 메모리 내부에서 변경이 불가능하다. 일반적으로 문자열을 결합하는 연산과정은 메모리 내부에서 새로운 문자열이 만들어지는 상태이다. 하지만 StringBuilder 클래스는 문자열 결합을 할 때 String처럼 새로운 문자열을 만드는 것이 아닌 기존에 문자열에 추가하는 방식이다. public class Main { public static void main(String[] args) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("문자열 ").append("연결")..

    Java - [문자열] String

    Java에서는 클래스 타입인 String을 사용해서 문자열을 다룬다. 클래스는 그 자체로 타입으로 사용할 수 있고 관련 기능을 한데 묶을 수 있다. String 타입의 선언과 저장은 다음과 같다. 1.문자열 리터럴을 대입하는 방법 (* 리터럴 = 문자열 그 자체가 값을 나타내는것") String 변수명; 변수명 = "이것은문자열"; 2. String 변수명 = "이것도문자열"; 3.new 연산자로 새 객체를 생성후, 문자열을 대입하는 방법 String 변수명 = new String("이것또한문자열"); 문자열은 앞에 배운 변수에 값을 직접 저장하는 것과는 달리 약간 다른 방식으로 작동하는데, 문자열이 담겨있는 주소를 참조 하는것이라 이해하는 것이 좋다. 즉 문자열은 Reference Type에 속한다. ..

    JAVA

    JAVA

    Java의 특징 Object Oriented Programming (객체지향 프로그래밍) 국내에서 백엔드 시장에서 정말 많이 쓰인다. 함수형 프로그래밍 지원 (람다식, 스트림 등) 자동 메모리 관리 (Garbage Collector로 메모리를 수동으로 관리해야 하는 c나 c++ 와는 달리 자동으로 메모리 관리) 운영체제에 독립적 (java 파일을 어느 운영체제 에서나 실행 가능 - JVM의 역할) JVM? JVE? JDK? JVM (Java Virtual Machine) 은 말 그대로 자바를 가상공간에서 실행시키는 도구로써, 컴파일러의 역할을 하는 javac가 Java파일을 JVM이 이해할 수 있는 bytecode (. class 파일)로 변환한 것을 운영체제에 맞는 기계어로 변환시키는 역할을 한다. 따..

    Git 입문

    Git 입문

    깃의 컨셉 자체는 의외로 직관적이라 이해하기 쉬웠다. 흔히 리포트 작성 같은걸 할 때 최종. pdf 이 진짜정말최종3.pdf 되는 경험으로 미루어 보아 같은 선상에 있다고 생각해도 무관했다. 특히 개발의 경우 물론 혼자할 때도 유용하지만 여럿이 협업을 진행할 때도 매우 유용한데 변화에 따른 버전을 나눠놓고 관리한다면 코드가 전부 날아간다던가 하는 불상사도 막을 수 있고 클라이언트의 버전을 낮춰야 할 때라던가, 누가 어느 코드를 변경했는지 등 많은 일들을 쉽게 해낼 수 있다. 간단하게 말하면 파일에 변화를 스냅샷 형식으로 남겨놓아 언제든지 버전을 왔다 갔다 할 수 있게 해 주는데, git 이 바로 이런 일을 해주는 Version Control System(버전 관리 시스템) 중 가장 많이 쓰인다. 그리고 ..

    Git command 정리

    Git command 정리

    clone 현재 디렉토리로 remote repo를 복사함 commit -m "코멘트" commit 생성 (변경 사항을 실제로 확정) local Repo에 버전 저장 add {file이름) file의 변경 사항을 staging area에 추가 status 현재 작업중인 파일의 상태 확인 push 로컬 저장소에 commit 된 모든 내용을 Remote Repo로 업로드 restore {file 이름} staging area에 있는 파일을 처음 받은 상태로 돌린다 (staging area에서 빠진다) reset reset HEAD^ {file이름} HEAD^ (최근1개전) / ^^(최근 2개전) 커밋을 취소하고 다시 workspace로 내린다. ^를 안붙이면 아무 변화 없음 HEAD가 현재이므로 checkou..

    Git workflow process

    Git workflow process

    헷갈렸던 원흉들 ** Remote Repo에서 변경사항이 있을 때 내 컴퓨터 (Local Repo)로 Pull로 가져올 수 있다. ** remote add 는 Remote Repo와 내 Local Repo를 서로 연결하는 것 ** 연결을 하고 pull 해야 실제 파일 받아옴 혼자할때 프로세스 #1 Fork로 다른 사람의 Remote Repo에서 내 Remote Repo로 코드를 옮긴다. #2 내 Remote Repo의 코드를 내 컴퓨터(Local Repo)로 Clone 해서 가져온다. #3 (뚝딱 작업 완료) #4 작업 파일을 git add 로 staging area에 저장 (여기서 Git 관리하에 들어간다) 그 외 untracked #5 Staging area에 있는 파일을 Commit 하여 Local..

    File Permission in Linux (chmod)

    File Permission in Linux (chmod)

    파일인지 폴더인지 확인하는 법 ls -l 실행 -rw-r--r-- 1 {username} ... 104 May 2 11:58 hello.java drwxr-xr-x 2 {username} ... 4096 May 2 11:57 linux - 는 non-directory, 즉 파일타입 d 는 directory, 즉 폴더 타입 r w x 는 각자 read permission, write permission 그리고 execute permission **사용자와 그룹 그리고 나머지에 대한 권한 표시를 위해 3번에 걸쳐서 출력된다. 아래 그림을 보면 직관적으로 알 수 있다. owner( user ) - 파일을 만든사람이 소유자가 된다. group - 그룹에 있는 모든 user는 파일에 대한 동일한 access 권한..

    리눅스 패키지 / 패키지 매니저 apt

    리눅스 패키지 / 패키지 매니저 apt

    패키지는 여러 파일이 들어있는 하나의 설치 파일 묶음으로 실행파일, 설정 파일, 설명 파일, 라이브러리 등을 포함한다. 패키지의 종류로써는 Source Package와 Binary Package가 있다. Pros Cons Key feature Source Package 내 맘대로 소프트웨어 수정 가능 컴파일 과정을 거쳐야 하니 설치 시간이 길고 컴파일 작업 오류가 날 수있다 소스 코드가 들어가 있어 컴파일 과정을 통해 Binary 파일로 만들어야함 Binary Package 이미 컴파일 되어있어 바로 설치 가능 내 작업 환경과 컴파일이 이루어진 환경이 달라 문제 발생 가능 이미 컴파일이 되어있다. *Binary Package의 단점처럼 환경이 다르기 때문에 컴파일과 실행을 위한 라이브러리가 내 환경에 없..