Language/Java 56

JAVA - 프로젝트 패키지이름 명명(Naming) 관례

패키지 이름은 다른 회사의 다른 애플리케이션과 달라야만 합니다. 예를 들어, 안드로이드 app의 경우 패키지명을 경로로해서 애플리케이션이 설치되는데, 다른 애플리케이션과 패키지명이 같다면 같은 애플리케이션이라고 인식하고 충돌할 것입니다. 아래는 패키지명을 지을 때 권고되는 관례입니다. # 규칙 소문자를 사용 dot(.)으로 그룹을 구분 도메인 주소를 주로 사용 (유일하기 때문) URL에서 순서는 역순 com / kr.co . 회사명 . [플랫폼] . 애플리케이션명 # 예시 com.nexon.maplestory com.nexon.android.maplestorym

Language/Java 2021.02.04

Java - 스택 트레이스(Stack Trace) 읽기

스택트레이스란? 스택트레이스는 프로그램이 시작된 시점부터 현재 위치 까지의 메서드 호출 목록입니다. 이는 예외가 어디서 발생했는지 알려주기 위해 JVM이 자동으로 생성합니다. 스택트레이스를 읽는 능력은 선택이 아닌 필수입니다(초보자라면 더욱). 왜냐하면 오류 발생시, 무턱대고 오류내용을 복붙하고 해결을 위한 코드도 복붙해서 해결하면 직면한 문제는 해결할 수 있지만 발전 없이 머물러 있게 되기 때문입니다. 반면에, 한번만 주의 깊게 연구해 본다면, 다음부터는 쉽게 정확한 원인을 파악할 수 있고, 효율적으로 해결할 수 있게 됩니다. 또한, 그런 문제를 마주치는 빈도가 줄어들게 됩니다. public class StackTraceTest { public static void main(String[] args) ..

Language/Java 2020.10.09

Java - 메인 메서드가 public static void인 이유

왜 자바의 메인 메서드는 public static void를 사용할까? 자바의 메인메서드를 작성할 때는 public static void main(String[] args){}구조로 작성합니다. 왜 이런 구조를 갖게 되었는지 살펴보겠습니다. public public은 접근제어자입니다. 어느 클래스에서든 해당 객체를 참조할 수 있다는 뜻입니다. JVM(Java Virtual Machine)이 접근 하기 위해서 public을 사용해야만 합니다. 다른 접근 제어자를 사용하면 프로그램이 실행되지 않습니다. static static으로 뭔가를 선언하게 되는 경우, 자바가 컴파일 되는 시점에 정의됩니다(클래스 로드). 그리고 static 요소를 non-static 요소에서 호출하는 것은 불가능합니다. main 메서..

Language/Java 2020.09.28

Java - 람다식(Lamda Expression)이란 ? (+ 예제)

람다식이란 ? 람다식은 익명함수를 표현하는 하나의 표현식입니다. 이는 식별자 없이 실행가능한 함수 즉, 함수를 따로 만들지 않고 코드 한줄에 함수를 써서 그것을 호출하는 방식입니다. Java 8 부터 함수적 프로그래밍(함수 지향)을 위해 람다식을 지원해서 사용하고 있습니다. 이를 이용하면 기존의 익명 객체를 구현하는 방식보다 더 간결하게 코드를 짤 수 있습니다. 람다식 사용법 (매개변수, ...) -> { 실행문 ... } (매개변수, ...)는 오른쪽 중괄호 {} 블록을 실행하기 위해 필요한 값을 제공하는 역할을 합니다. 매개 변수의 이름은 개발자가 자유롭게 지정할 수 있으며 인자타입도 명시해줄 필요가 없습니다. "->" 기호는 매개 변수를 이용해서 중괄호 {}를 실행한다는 뜻으로 해석할 수 있다. +..

Language/Java 2020.09.25

Java - JPA란 ? (+ORM)

JPA란? JPA(Java Persistence API)란 자바 진영의 ORM 기술 표준입니다. ORM(Object Relational Mapping)은 객체-관계 매핑이라는 뜻입니다. 이는 OOP(객체 지향 프로그래밍)에서 쓰이는 객체를 구현한 클래스와 RDB에서 쓰이는 테이블을 자동으로 매핑(사상)하는 것을 의미합니다. 이 때 이 둘은 구조가 전혀 다르기 때문에 불일치가 발생하는데, ORM을 통해 객체와의 관계에 의거해서 SQL문을 자동으로 생성해주어서 이런 문제를 해결합니다. 따라서 ORM은 따로 SQL문을 짤 필요없이 객체를 통해 간접적으로 DB를 조작할 수 있게 합니다. JPA에서는 이 ORM을 어떻게 구현하고 동작하는지를 기술하고 있는 인터페이스의 모음입니다. ORM의 장단점 #장점 1. 객체..

Language/Java 2020.09.21

Java - JDBC란 ?

JDBC란 ? JDBC(Java DataBase Connectivity)는 데이터베이스에 연결 및 작업을 하기 위한 자바 표준 인터페이스 입니다. 자바는 DBMS(Oracle, MySQL, MongoDB 등)의 종류에 상관 없이 하나의 JDBC API를 이용해서 데이터베이스 작업을 처리합니다. 이 JDBC는 DB에 접근해서 CRUD를 쉽고 효율적이게 할 수 있게 하고, 고성능에서의 세련된 메소드를 제공하며 쉽게 프로그래밍 할 수 있게 도와줍니다. JDBC의 역할 # JDBC가 생긴 이유 JDBC API가 없던 때에는 데이터베이스의 종류 마다(ms-sql, my-sql, oracle ..) 각각의 SQL문을 사용 그 결과 DB의 종류에 따라 SQL문의 작성 방법이 너무나 차이가 나서 구현이 불편함. 그래서..

Language/Java 2020.09.20