증감 연산자(increment and decrement operators) 증감 연산자는 정수형 변수를 1씩 증가하거나 감소시킬 때 사용하는 연산자입니다. 사실 증감 연산자는 장단점이 명확하고, 대체 방법이 있기 때문에 해당 기능이 없는 언어(ex: Python)도 존재합니다. 증감 연산자 종류 증감 연산자 예시 예시 기반 설명 전위 증가 ++i - i의 값을 1 증가 시킨 후 연산을 수행한다 후위 증가 i++ - 먼저 연산을 수행한 후 i의 값을 1 증가 시킨다. 전위 감소 --i - i의 값을 1 감소 시킨 후 연산을 수행한다. 후위 감소 i-- - 먼저 연산을 수행한 후 i의 값을 1 감소 시킨다. 코딩을 잘 모르는 분들은 이게 무슨 소린가? 할 수 있는데 설명만 보고서는 증감 연산자를 이해하기 힘..
변수에 대해서 알아보았으니 이제 본격적으로 컴퓨터로 계산을 하기 위한 가장 기본적인 연산자에 대해서 알아보도록 하겠습니다. 자바에서는 다양한 연산자가 존재합니다. 다만 개발을 하면서 이것은 무슨 연산자가 명칭을 외울 필요는 없고 코딩을 하면서 스스로 습득을 하는 것이 가장 중요합니다. 산술연산자(arithmetic operator) 산술연산자는 사칙연산처럼 2개의 값을 계산하기 위해서 사용되는 연산자입니다. 산술 연산자 내용 예시 + 두개의 값을 더한다. 1+2의 경우 3 - 왼쪽 기준의 값에서 오른쪽 값으로 뺀다. 2-1의 경우 1 * 두개의 값을 곱한다. 2*2의 경우 4 / 왼쪽 기준의 값에서 오른쪽 값으로 나눈다. 4/2의 경우 2 % 왼쪽 기준의 값에서 오른쪽 값으로 나눈 후, 나머지를 가져온다..
자바(Java)를 배우기 위해선 우선 기본적으로 변수(variable)와 선언할 때 사용하는 자료형(type)을 알아야 됩니다. 자바는 정수값을 저장하기 위해서는 정수값을 선언해야 하고, 문자들을 다루기 위해서는 문자열을 선언해야 합니다. 최근에 나오는 언어들은 알아서 타입을 지정(ex: kotlin)해주거나 선언 자체를 하지 않는 (ex: python, javascript) 언어들이 등장하기 때문에 자바가 구식처럼 느껴질 수 있지만, 사실 이 방식은 장단점이 있는 방식이기 때문에 어떤 언어가 좋다라고 말을 하기가 애매합니다. 변수에 형태를 지정하지 않는다면 편리함이 있을 수 있겠지만, 예상하지 못한 데이터가 들어갔을 때 에러를 막지 못하는 단점도 존재할 수 있겠죠. 변수(Variable) 변수라는 것은..
본 포스팅은 자바를 이제 막 배우기 시작한 학생이거나, 취업을 목표로 공부를 하려는 비전공자분들을 위한 강의 포스팅입니다. 그렇기에 강의는 순서대로 되어 있으며, 너무 불필요한 내용들은 최소화 하는 것이 목표입니다. 자바 101 강의 시리즈이기 때문에 추후, 직업에 따라 확장되는 분야들은 그 포스팅에서 진행하게 됩니다. 예를 들어, 앱 개발자가 되고 싶을 경우 자바 101 강의를 듣고, 코틀린(kotlin) 포스팅을 보거나 안드로이드 개발 강의를 보면 됩니다. 본 강의의 정식적인 루트는 자바에서 웹개발까지의 가장 기본적인 루트를 따라갑니다. 물론 웹개발 부분은 강의명이 자바 101이 아니라 웹개발 101 혹은 프론트엔드 101 혹은 스프링부트 101 등의 명칭으로 가게 될 예정입니다. 참고로 제가 이미 ..
자바(Java)에서 문자열을 자르는 방법으로 substring을 제공하고 있다. substring은 2가지 방식의 인자값을 받고 있으며 방식은 아래와 같다. substring 사용법 String substring(int startIndex); String substring(int startIndex, int endIndex); startIndex는 시작지점의 인덱스 값이고, endIndex는 종료 지점의 인덱스 값이다. 두 방식 모두 return 값으로 문자열(String)이 리턴된다. 사용 예제 public class Main { public static void main(String args[]) { String example = "동해물과 백두산이 마르고 닳도록"; System.out.println..
자바로 파일을 생성하는 방법은 다양하게 많지만 그 중 가장 범용적이고, 성능도 뛰어난 방법을 소개해보고자 한다. 테스트를 위한 String 생성 public static void main(String args[]) throws Exception { List sampleList = new ArrayList(); for(int i = 0; i < 10; i++) { sampleList.add("test-" + i); } } 테스트를 위해서 10번의 루트를 실행하며, test-0 ~ test-9까지 문자열을 생성하고 sampleList 스트링 리스트 변수에 문자열 값들을 저장한다. 파일 생성 메소드 public static boolean createTextFile(String filePath, List sam..
Java로 리스트를 섞는 가장 쉬운 방법은 내장 객체인 Collections 객체의 셔플(Shuffle)을 사용하는 것이다. Shuffle 사용 Collections(리스트) 로또번호를 셔플(Shuffle)로 이용해서 만들면 매우 간단하고, 견고하게 만들 수 있다. 로또번호(Lotto Number) 생성 1-45번호 세팅 List numList = new ArrayList(); for (int i = 1; i [29, 5, 18, 12, 20, 6, 30, 10, 41, 15, 25, 45, 23, 3, 44, 42, 31, 9, 1, 14, 24, 2, 17, 8, 21, 40, 33, 7, 39, 13, 34, 4, 32, 37, 38, 26, 36, 11, 19, 43, 16, 27, 28, 22,..
List안에 들어간 값들을 기준으로 오름차순(Ascending)과 내림차순(Descending) 즉, 정렬을 하는 방법을 알아보도록 하겠습니다. 테스트를 위해서 다음과 같은 주식 종목값들을 넣어봤습니다. 리스트 예제 public static void main(String[] args) { List list = new ArrayList (); list.add("삼성전자"); list.add("테슬라"); list.add("애플"); list.add("엔비디아"); } 이 값들이 오름차순이 된다면, 삼성전자 -> 애플 -> 엔비디아 -> 테슬라 순으로 나와야 될 것입니다. 자바는 Collections이라는 내장 객체를 사용해서 쉽게 정렬을 할 수 있습니다. 오름차순 // 오름차순 Collections.sor..
UnsupportedOperationException 에러는 일반적으로 List 형을 new로 초기화하지 않는 상태에서 Arrays로 생성하였을 시 주로 발생한다. 케이스 public static void main(String[] args) { List tempList = Arrays.asList("aaa"); System.out.println(tempList); tempList.add("bbb"); } 일반적으로 값을 세팅하고, 변경하지 않을 거라면 위와 같이 List형을 Arrays.asList로 초기화해도 아무런 문제가 없으나, new로 생성하지 않는 List의 값을 변경하려 한다면 UnsupportedOperationException 에러가 발생한다. 위 코드를 실행하면 다음과 같은 결과가 나온다..
이제 막 개발을 시작한 개발자라면 인터페이스의 필요성에 대해서 공감이 안되겠지만, 개발 경력이 어느정도 되었으며 협력을 하였고, 개발을 하기 전에 설계를 하는 개발자라면 인터페이스의 필요성에 대해서 더이상 말을 할 필요가 없을 것이다. 우리가 자동차를 만든다고 해보자 재료는 모두 갖추어져 있고 만들 기술과 장비가 있다고 한다면 현재 가장 필요한 것이 무엇일까? 바로 "설계도"일 것이다. 개발이든 건축을 하든 아니면 자동차를 만들든 제일 먼저 해야 될 것은 설계를 해야 하고 검증을 통해서 이상이 없다면 개발을 시작할 수 있다. 인터페이스는 바로 이 설계도와 유사하다. 개발자들은 비즈니스 로직이 되는 서비스단을 구현하기 위해서 필요한 메소드(method)를 미리 인터페이스화 시킨 후 이를 구현 하여 최종적으..
Java는 파일 객체를 다룰 수 있는 File이라는 클래스를 제공한다. 이를 통해 다양한 파일 컨트롤을 할 수 있는데 아주 기본적이고 기초적이면서 프로그램 전공이 아닌 사람들은 힘들어 하는 재귀 함수(Recursive function)에 대해서 작성해보도록 한다. 재귀 함수는 메소드가 자신을 계속 호출하는 즉 재귀호출 기능이 있는 함수를 말한다. 이를 통해 하위 Depth의 값들을 처리할 수 있다. parent code가 있고 child code가 있을 경우 child code는 parent code를 탐색하며 재귀 호출을 할 수도 있고 그 반대로 처리하여 하위 Depth로 내려갈 수도 있다. 백문이불여일타니 아래의 소스코드를 이해해보도록 한다. 재귀함수로 파일 스캔 import java.io.File;..
DB를 가져올 때 날짜 포맷을 변경하여 처리할 수 있지만, 포맷을 변경하기 힘든 NoSQL DB 라든지 혹은 포맷을 변경하기 힘든 케이스의 경우 자바(Java)에서 지원하는 기능인 SimpleDateFormat을 사용하여 포맷을 변경할 수 있다. SimpleDateFormat 날짜를 바꾸기 위해서는 java에 내장되어 있는 SimpleDateFormat을 활용하여 포맷을 변경한다. 라이브러리의 이름처럼 심플하게 데이트 형태로 포맷을 변경한다. 데이트포맷 옵션 포맷문자 날짜 및 시간 요소 표현 예시 G Era designator Text AD y Year Year 1996; 96 Y Week year Year 2009; 09 M Month in year (context sensitive) Month Jul..