본문 바로가기

프로그래밍458

Spring Boot 웹애플리케이션에서 서비스 포트와 컨텍스트 패스를 변경하기 Spring Boot 웹애플리케이션을 Spring Boot Web Starter 설정을 사용해서 만들어서 실행하면 서비스 포트와 컨텍스트 패스는 다음 설정을로 실행됩니다. - 내장 톰캣 서비스 포트 : 8080- 컨텍스트 패스 : ''(root context) 이 설정을 바꿔려면 어떻게 하는지 알아보겠습니다. 이번에 사용된 예제는 "Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기" 의 예제를 Spring Boot + Java + Thymleaf로 바꿔서 테스트 했습니다.(Kotlin을 공부할 시간이 잘 나지 않네요. 자바에 Thymeleaf로 Thymeleaf를 먼저 공부해봐야 겠습니다.T.T) 앞의 프로젝트 생성과 바뀐점은 언어를 Kotlin에서 Java로 바꾼것과 Sprin.. 2019. 9. 29.
Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기 이때까지 스프링 프레임워크를 사용한 웹 애플리케이션을 개발하는데 항상 xml설정 방식과 Java, JSP를 사용해 왔었습니다. 스프링 프레임워크에 대해서 계속 공부하던 중 Spring Boot, Kotlin, Thymeleaf등에 대해서 알게 되었고, 이것들을 조합하여 사용하는 것을 테스트해 보기로 마음 먹었습니다. 먼저 테스트를 위한 프로젝트를 생성해 보겠습니다. 사용된 개발툴은 다음과 같습니다. - JDK 1.8(Java 8) 이미 12버전까지 나와 있지만 못따라 가겠네요.T.T - Eclipse IDE 1918-12 Photon이후로 Eclipse의 명명방식이 년월을 붙이는 방식으로 바꼈네요. - Spring Tools 4 Eclipse 플러그인으로 사용하고 있습니다. Spring Boot 프로젝트.. 2019. 8. 19.
Kotlin - 클래스와 상속 코틀린에서 클래스를 만드는 방법에 대해 알아봅니다. 코틀린도 객체지향언어 이군요. 뭐, 요즘은 자바스크립트도 PHP도 모두 객체를 사용할 수 있도록 변해 왔으니까 특이할 것도 없겠죠. 클래스(class)는 객체가 어떤 데이터를 가지고, 어떻게 동작할지를 나타내는 코드 정보라고 할 수 있겠습니다. 실제 프로그램이 실행되어 정의된 클래스에 따라 컴퓨터의 메모리상에 객체가 만들어지면 이것을 인스턴스(instance)라고 합니다. 1. 클래스(Classes) 코틀린에서 클래스는 class 키워드를 사용해서 정의합니다. class Invoice { ... } class Box(t: T) { ... } 클래스의 선언은 클래스 이름, 클래스 헤더(클래스의 타입 파라미터의 정의, 기본 생성자 등), 중괄호로 둘러싸인 .. 2019. 8. 15.
자바 문법 - 문자열(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.