본문 바로가기

분류 전체보기487

자바 문법 - 문자열(String 객체) 다루기 자바 문자열은 객체이고 문자열 리터럴은 큰 따옴표로 묶어 표시합니다. String text = "추석에 배를 먹습니다."; 문자열 리터럴도 객체이므로 바로 메소드를 호출할 수 있습니다. int length = "추석에는 배".length(); 1. 문자열 연결하기 자바 문자열을 연결하는데는 + 연산자를 사용합니다. String h = "Hello "; String j = "Java!"; String text = h + j; System.out.println(text); 결과) Hello Java! 자바에서 문자열에 연산을 사용하는데 있어서 주의해야 할 점이 있는데, 자바 문자열은 불변(immutable)이라는 점입니다. 문자열에 연산을 가하면 현재 문자열을 변경되지 않고 변경된 새 문자열이 만들어져서 반.. 2019. 8. 11.
자바 정규식(Regular Expression) 사용하기 앞의 글에서 문자열을 분할하고, 내용을 바꾸는 split(), replaceAll() 메소드에 대해서 알아보았는데, 정규식을 사용하는 예를 들었었습니다. 그래서 자바언어에서의 정규식에 대해서 알아보려고 합니다. 정규식은 문자열에서 특정 패턴을 찾거나 교체, 삭제 등 문자열을 원하는 형태로 편집하는 기능을 제공해 줍니다. 정규식은 자주 사용되지는 않지만, 어떤 경우에 일반적인 로직으로 처리하기 힘든것은 간편하게 처리할 수 있는 힘이 있습니다. 대부분의 언어들이 정규식을 가지고 있는데, 그 사용법들이 조금씩 다른것 같습니다. 자바 문자열 객체(java.lang.String)에서 정규식을 사용하는 자주 쓰는 메소드는 다음과 같습니다. - boolean matches(String regex) 인자로 주어진 정규.. 2019. 8. 10.
자바 문자열에서 특정 문자를 다른 문자로 바꾸기 - replace, replaceAll, replaceFirst 자바언어를 사용해서 문자열내의 특정 문자를 다른 문자로 바꾸는 방법을 알아 봅니다. 이때 주의해야할 사항이 있습니다. 자바 문자열은 불변(immutable)이라는 것입니다. 자바 문자열을 불변이라서 어떤 연산에 의해 원본 문자열이 바뀌지 않습니다. 원본은 그대로 유지되고, 바뀐 문자열이 새로 생성이 되어서 반환됩니다. 그래서 항상 바뀐 문자열을 반환값으로 받아야 합니다. String str = "ABCDE"; String text = str.replace('C', 'F'); 자바 String객체에 문자열에는 문자열을 바꿀 수 있는 다음과 같은 메소드가 제공 됩니다. - String replace(char oldChar, char newChar) 문자열내에 있는 모든 oldChar를 newChar로 바꾼 .. 2019. 8. 8.
자바 문자열을 구분자로 분할하기 - split 자바 언어에서 구분자로 연결된 문자열을 분할하는 방법을 알아봅니다. 예전에는 StringTokenizer 객체를 사용했었는데, JDK 1.4부터 split 메소드를 사용할 수 있습니다. 이게 훨씬 간편합니다. split는 오버로딩 된 두 개의 메소드가 제공되며 정규식을 사용해서 문자열을 분할 합니다. 각각은 다음과 같습니다. - String[] split(String regex) : 인자로 주어진 정규식과 매치되는 문자열을 구분자로 분할합니다. - String[] split(String regex, int limit) : 인자로 주어진 정규식과 매치되는 문자열을 구분자로 분할 합니다. 두 번째 인자로 정규식을 적용하는 횟수를 제한할 수 있습니다. 분할할 구분자를 찾는데 정규식을 사용하므로 복잡한 형태의 .. 2019. 8. 6.
iPhone 8에 iOS 12.4 업데이트 및 Apple Watch 3에 watchOS 5.3 업데이트 7월 22일에 업데이트가 나왔다고 하네요. 이제야 업데이트 했습니다. iPhone 8의 iOS 12.4는 업데이트 파일 용량이 412.1MB이고, 업데이트에 걸린 시간은 15분 정도 였습니다. Apple Watch 3의 watchOS 5.3은 파일 옹량이 114MB이고, 업데이트에 걸린 시간은 10분 정도 였습니다. 1. iOS 12.4의 업데이트 내용입니다. - iPhone 마이그레이션 : 이전 iPhone에서 새 iPhone으로 직접 마이그레이션하는 기능을 선보인다고 합니다. 그외에도 Apple Card 지원, Apple 뉴스 수정, 워키토키 기능 활성화등에 대한 내용이 있는데 한국에서는 지원되지 않거나, 사용하지 않거나, 하위 버전이라 지원되지 않는 것들이라 나에게는 확인 불가능 합니다. 업데이트 .. 2019. 7. 30.
Kotlin - 반환 및 제어 흐름 건너뛰기 - return, continue, break 이번에 볼 것은 함수 또는 람다 표현식에서 반환문(return)을 사용하는 방법과 루프의 반복을 건너뛰거나(continue) 바로 빠져 나오는(break) 방법입니다. - return : 기본적인 사용법은 return문장을 둘러싼 가장 가까운 함수 또는 익명 함수에서 반환합니다. 반환값이 있을수도 없을수도 있습니다. 기본적인 사용법에서라고 말한것은 코틀린에서는 라벨 반환을 할 수 있습니다.- break : 가장 가까운 둘러싼 루프를 종료합니다.- continue : 가장 가까운 둘러싼 루프의 다음 반복을 진행합니다. ※ 참고 : 둘러싼 가장 가까운 루프, 함수, 익명함수 라고 하는 것은 함수 또는 루프가 중첩될 경우 그중에 가장 가까운 것을 의미합니다. 이 return, continue, break는 다.. 2019. 7. 29.
Kotlin - 흐름제어(Control Flow): if, when, for, while 코틀린에서 프로그램의 흐름을 제어하는 방법을 알아봅니다. 흐름제어에는 if, when, for, while이 사용되어 집니다. 다른 언어와 유사합니다. 1. if 표현식(If Expression) 코틀린에서 if는 표현식 입니다. 즉, if가 반환값을 가집니다. 그러므로 코틀린에는 삼항 연산자(조건 ? 참일때 : 거짓일때)가 없습니다. 왜냐하면 보통 if가 삼항연산자의 역할을 잘 수행하기 때문입니다. // 전통적인 사용법var max = aif (a b) { max = a} else { max = b} // 표현식으로의 사용법val max = if (a > b) a else b if 표현식의 브랜치는 여러문장을 가지는.. 2019. 7. 13.
Kotlin - 패키지와 임포트(packages and imports) 패키지는 클래스들을 분류해서 모아둔것을 말한다고 생각하면 되겠습니다. 또한 패키지는 동일한 클래스 이름을 사용하는 클래스가 있을때 이름 충돌을 피하는데도 사용될 수 있습니다. 패키지는 인터넷 도메인 처럼 마침표(.)로 구분되는 문자열로 정의됩니다. 코틀린과 자바를 같이 사용하는 프로젝트라면 Kotlin 소스 파일은 Java 소스 파일과 동일한 소스 루트에 있어야하며 동일한 디렉토리 구조를 따라야합니다(자바에서는 패키지명의 마침표 부분으로 구분되는 디렉토리 구조에 파일이 저장됩니다). 순수 Kotlin 프로젝트에서 권장되는 디렉토리 구조는 공통 루트 패키지가 생략된 패키지 구조를 따르는 것입니다 (예 : 프로젝트의 모든 코드가 "org.example.kotlin" 패키지 및 하위 패키지에 있는 경우 "or.. 2019. 7. 5.
Kotlin - 기본 타입(Basic Types) Kotlin은 모든것이 객체입니다. 그러므로 모든 변수(variable)에 대해 멤버 함수와 속성을 호출할 수 있습니다. 몇몇 타입은 특별한 내부 표현을 가집니다. 예를 들어 숫자(numbers), 문자(characters), 불리언(booleans) 타입은 실행시간에는 원시값 처럼 표현되어집니다. 그러나 사용자에게는 보통의 클래스로 보입니다. 이 글에서는 Kotlin에서 사용되는 기본 타입인 숫자, 문자, 불리언, 배열, 문자열에 대해서 알아봅니다. 1. 숫자(Numbers) 코틀린은 숫자를 자바와 유사하게 다룹니다. 하지만 똑같지는 않습니다. 예를 들어 코틀린의 숫자 타입은 암묵적인 넓은 범위로의 변환이 없습니다. 그리고 어떤 경우에는 리터럴이 약간 다릅니다. ※ 참고 : 자바에서 서로 다른 타입의 .. 2019. 7. 1.
Kotlin을 사용하는 Spring Boot 웹 애플리케이션 Spring Boot 웹 애플리케이션을 만드는데, 언어로 Kotlin을 사용하도록 프로젝트를 구성해 봅니다. Kotlin은 안드로이드 앱 개발외에 Spring 프레임웍을 사용하는 웹 애플리케이션 개발에도 사용될 수 있다고 합니다. 프로젝트 생성은 "Spring Boot 웹 프로젝트 만들기"에서 프로젝트 생성하는것을 참조해서 생성하면 되겠습니다. 차이점은 언어를 Java가 아니라 Kotlin 으로 선택하면 되겠습니다. 이 예제도 전자정부표준프레임웍 3.8 개발툴을 사용하고 있습니다. 프로젝트를 생성하면 두 가지 에러가 보입니다. - 첫 번째 에러는 maven-jar-plugin.version이 맞지 않아서 였습니다. 다음과 같이 프로퍼티를 수정해서 3.1.1 버전으로 오버라이드 합니다. 1.8 1.2.71.. 2019. 6. 16.
Spring Boot 웹 프로젝트 만들기 Spring Boot를 사용하여 웹 프로젝트를 만들고, 간단한 웹페이지를 출력하는 예제를 해보겠습니다. 스프링 부트는 한번도 해본적이 없는데, 여기저기 글들을 읽다보면 스프링부트가 많이 쓰이고 있는 것 같았습니다. 실제로 처음 스프링 부트를 사용해서 웹 애플리케이션을 처음 만들어본 상황에서는 장점을 잘 모르겠습니다. 좀 공부해보고 정말 장점이 있는지 확인을 해봐야 할 것 같습니다. Sprng Boot를 사용해서 웹프로젝트를 만드는 방법은 알아보니 STS(Spring Tool Suite)나 전자정부표준프레임웍크 3.8에는 Spring Boot 프로젝트 템플릿이 있어서 그걸 사용하면 되는데 일반 Eclipse에는 프로젝트 템플릿이 없어서 Spring Initializr 사이트에서 템플릿을 다운로드 받아서 i.. 2019. 6. 13.
Kotlin - 코딩 관습(Coding Conventions) Kotlin을 Java, C, C++, PHP, C#등의 언어만 봐온 상태에서 배워보려니까 상당히 생소한 문법 형태가 많이 나오는것 같습니다. 코틀린 문법에 대해서 전혀 모르는 상태에서 이 코딩 컨벤션 문서를 보면서 문법을 모르면 이해하기 힘든 것들이 많이 있었습니다. 하지만 그냥 무시하고, 문서를 봤습니다. 다른 방법이 없어서 그랬다는게 맞겠죠.^^ 앞으로 문법을 배워 나가면서 이 문서를 다시보고 수정하던가 해야 겠습니다. 코딩 관습(Coding Conventions)은 띄어쓰기 이름작성시 대소문자등 문법오류와 관계 없으나 많은 사람들이 따르는 일반적인 코드작성규칙을 말합니다. 이런 규칙을 따르는 것이 다른 사람의 코드를 분석하거나 자신이 작성한 코드이더라도 가독성을 높이는 방법이 됩니다. 이 페이지에.. 2019. 6. 9.
Kotlin - 관용구(Idioms) 프래그래밍에서 관용구(idioms)는 자주 사용하는 코딩 형태나 패턴이 되겠습니다. 보통 같은 결과를 내는 프로그램을 다른 모양으로 작성할 수 있는데, 관용구는 주로 사용되는 형태를 말합니다. 여기에는 Kotlin에서 자주 사용되어지는 관용구(idioms)를 무작위로 모아둔 내용 입니다. 1. DTO(Data Transfer Object)s 객체 만들기 data class Customer(val name: String, val email: String) 이 간단하게 선언한 Customer 클래스는 다음 기능들을 제공합니다. 코틀린의 Data class에 대해서는 다음에 자세히 알아보겠습니다. - 모든 속성에 대한 getters (var로 선언 되었을 경우 setters 도 제공) 제공합니다. - equa.. 2019. 5. 6.
Kotlin - Basic Syntax(기본 구문) (2/2) Kotlin - Basic Syntax(기본 구문) (1/2) 에서 이어집니다. 기본 구문(Syntax)에 대한 글은 말 그대로 구문(Syntax)에 대해 설명합니다. 프로그램에서 구문(Syntax)는 문법(Grammar)에 의해 정의된 프로그램의 형태, 구조 등을 말합니다. 그러므로 설명 코드내의 자세한 연산자, 예약어, 예외 등에 대한 설명은 없습니다. 이러한 자세한 내용은 나중에 알아보게 되겠습니다. 9. null이 가능한 값의 사용과 null 체크하기 null 값이 가능한 참조(reference)는 null사용 가능하다는 표시를 반드시 해야 합니다(반환 타입 뒤에 ? 를 붙입니다). 다음 함수는 문자열 str이 정수가 아닐경우 null을 반환합니다. fun parseInt(str: String):.. 2019. 4. 30.
Kotlin - Basic Syntax(기본 구문) (1/2) 이 글에서는 Kotlin(코틀린) 언어의 기본 구문에 대해서 알아봅니다. 다음글을 번역한 내용 입니다. https://kotlinlang.org/docs/reference/basic-syntax.html 1. 문장 끝의 세미콜론 Kotlin은 문장 끝에 세미콜론을 붙이지 않아도 됩니다(붙여도 됩니다). 2. 패키지 정의는 소스파일의 제일 위에 적습니다. package my.demo import java.util.* // ... 소스 파일의 위치는 패키지명의 구조와 같을 필요는 없습니다(같아도 됩니다). 컴파일된 class파일은 패키지와 같은 디렉토리 구조 내에 생성 됩니다. 3. 함수의 정의하기 다음 함수는 두 개의 Int 파라미터를 가지고, Int 타입을 반환하는 함수 입니다. fun sum(a: In.. 2019. 4. 25.