분류 전체보기264 [주절주절] python 최근 python을 개인적으로 공부하고 있습니다. 처음 시작은 간단한 util을 만드는 일이었습니다. json scheme를 java object model로 바꾸는 작업이 필요했습니다. 처음에는 노가다로 작업을 했었는데... 양이 점점 많아지니 자동화가 필요하겠다 싶었습니다. 작업은 아래와 같습니다. { "name" : "sabarada", "age" : 28 } 이런 json scheme를 아래와 같이 object로 변경하는 것입니다. @Getter @Setter @ToString public clss Person { private String name; private int age; } 문제는 이해는 되셨을거라 생각합니다. 처음에는 지금 까지 잘 이용해 온 java를 이용해서 개발해야지라고 생각했습.. 2020. 5. 29. [gradle] gradle을 이용하여 java 프로젝트 만들기 안녕하세요. 오늘은 gradle 빌드 도구에 대해서 알아보는 첫번째 시간입니다. 여러분들과 함께 진행해볼 내용은 gradle을 이용하여 java 프로젝트를 만드는 것입니다. gradle로 java 프로젝트를 만든다? 어떤거라고 생각하시나요? 일반적으로 프로젝트를 만든다면 IDE를 이용하여 만듭니다. intellij나 STS로 project를 gradle로 생성해서 만듭니다. 하지만 프로젝트 생성은 gradle의 명령어 만으로도 만들 수 있다는 사실 알고 계셨나요? 오늘은 gradle을 이용해서 java project를 생성해보도록 하겠습니다. 오늘 진행하는 프로젝트에서 제가 사용한 환경은 MAC입니다. windows환경은 다를 수 있음을 알려드립니다. gradle 설치 gradle 명령어를 이용하려면 먼.. 2020. 5. 17. 빌드 도구가 뭐에요 ? 안녕하세요. 저는 현재 Back-End 개발자로써 Java를 메인 언어로 삼으며 개발을 해오고 있습니다. Java 개발자라면 일반적으로 Spring 프레임워크를 쓸것이고 중요한건 Java 문법에 대한 이해와 Spring 프레임워크에 대한 이해 일거라고 생각합니다. 사실 이렇게 2개만 잘 사용하더라도 아무런 지장이 없습니다. Spring 프레임워크로 개발을 한다. 그러면 우리는 Java만 알면 될까요? 문제는 없습니다만 또 사용하는게 하나 있습니다. maven, gradle과 같은 빌드 도구들입니다. 오늘은 빌드 도구에 대해서 알아보겠습니다. 빌드 도구란? 빌드 도구는 빌드 자동화를 시켜주는 실행가능한 프로그램만들어 주는 프로그램을 말합니다. 여기서 빌드 자동화란 단어가 나옵니다. 빌드 자동화라는 말은 위.. 2020. 5. 15. [UML] 시퀀스 다이어그램 이해하기 [UML] 클래스 다이어그램 이해하기 [UML] 시퀀스 다이어그램 이해하기 안녕하세요. 우리는 이전 포스팅에서 클래스 다이어그램에 대해서 이야기 해본적이 있습니다. 구조 다이어그램(Structural Diagram)의 대표로써 이야기 했었지요. 이어서 오늘은 동적 다이어그램(Behavioral Diagram)의 대표격인 시퀀스 다이어그램에 대해서 알아보는 시간을 가져보도록 하겠습니다. 정의와 목적 시퀀스 다이어그램(Sequence Diagram)은 어떠한 순서로 어떤 객체들과 어떻게 생호작용했는지를 표현하는 다이어그램입니다.이 다이어그램은 현재 존재하는 시스템이 이떠한 시나리오로 움직이고 있는지를 나타내는데 장점을 가지고 있습니다. 시퀀스 다이어그램을 이용하면 API 등의 유즈케이스를 디테일하게 알 수 .. 2020. 5. 15. [java8] java의 주요 functional interface - Predicate, Operator 안녕하세요. 오늘은 저번 포스팅에 이어서 functional interface를 알아보는 2번째 시간입니다. 오늘 알아볼 Functional Interface는 Predicate, Operate 2가지입니다. Predicate Predicate Interface는 T에대한 조건에 대해서 true / false를 반환하는 Fucntional Interface입니다. Predicate로 사용되며 T는 파라미터입니다. 해당 파라미터에 대해서 true / false를 return 할 수 있도록 작성해주면 됩니다. Predicate interface는 아래와 같습니다. @FunctionalInterface public interface Predicate { /** * Evaluates this predicate .. 2020. 5. 11. [java8] java의 주요 functional interface - function, supplier, consumer 안녕하세요. 오늘은 java의 functional interface에 대해서 몇가지 알아보는 시간을 가지도록 하겠습니다. functional Interface는 java8에서 나와 주로 람다식으로 자주사용되고 있으며 함수형 패러다임을 달성할 수 있도록 하는데 도움을 주고 있습니다. 해당 interface들은 java.util.function 패키지에 모두 포함되어 있습니다. 오늘은 이런 functional interface와 이용에 대해서 알아보도록 하겠습니다. Function Function은 1개의 파라미터를 받아서 1개의 결과를 반환하는 funtional interface입니다. Function로 사용할 수 있으며 T는 받는 파라미터, R은 반환하는 값입니다. 실제 인터페이스는 아래와 같습니다. @.. 2020. 5. 9. [Junit5] Assertions과 Assumptions - Assumptions편 안녕하세요. 오늘은 JUnit5의 3번째 시간입니다. 이번 포스트에서는 Assertions와 Assumption중 Assumptions에 대해서 좀 더 자세히 알아보는 시간을 가지도록 하겠습니다. Assumptions Assumption 구문은 테스트 메서드가 특정한 조건에 대해서 실행하고자 할 때 사용하는 구문입니다. JUnit5에서는 org.junit.jupiter.api.assumptions 패키지의 내용물로 사용할 수 있습니다. 사전조건 테스트를 위한 사전 조건으로 사용하는 Class는 아래와 같습니다. 해당 Class는 사칙연산을 담당하는 클래스로 add, multiply, divide를 메서드로 가지고 있습니다. private final Calculator calculator = new Cal.. 2020. 5. 7. [Junit5] Assertions과 Assumptions - Assertions편 안녕하세요. 오늘은 저번 포스팅에 이어서 JUnit5에서 제공하는 Assertions과 Assumptions에 대해서 조금더 디테일하게 알아보는 시간을 가져보도록 하겠습니다. 내용은 JUnit5 Guide에 나오는 내용을 기본으로 제 나름대로의 필요한 내용을 추가하는 식으로 진행하도록 하겠습니다. Assertions는 번역하면 단정문이라고 합니다. assertions는 만약 성공하지 않으면 테스트를 실패처리를 하기 위해서 사용합니다. Assumption은 번역하면 가정문이라고 합니다. assumptions는 특정 상황에서만 test문을 실행하고자 할때, 반대로 특정 상황에서만 실행하지 않고자할 때 사용하는 키워드입니다. 여기서 말하는 특정 상황이라는 것은 local환경 등을 들 수 있습니다. Assert.. 2020. 5. 3. [Junit5] Junit4에서 Junit5으로 안녕하세요. Spring Boot 2.2.x는 Junit5를 기본으로 제공하고 있습니다. 메이저 버전이 바뀌게 되었습니다. 과연 Junit4에서 Junit5로 변화하면서 어떤 부분이 변경되었을까요? 오늘은 Junit5를 사용하는 방법과 추가된 점에 대해서 알아보도록 하겠습니다. JUnit5 JUnit5는 차세대 Java Test 프레임워크로 3가지의 서브 패키지로 구성되어 있습니다. JUnit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform : JUnit Platform은 JVM에서 테스트 프레임워크를 시작하기 위한 기초적인 역할을 수행합니다. 또한 테스트 개발을 위한 API를 제공합니다. JUnit Jupiter : JUnit5에서 테.. 2020. 5. 1. [java] exception 처리하기 - try-catch-with-resources 안녕하세요. 오늘은 java7에서 추가된 exception을 좀 더 쉽게 처리할 수 있는 방법에 대해서 알아보는 시간을 가지도록 하겠습니다. 우리가 일반적으로 파일을 읽고 쓰는데 Stream을 이용합니다. Stream은 단방향으로 데이터를 전송할 수 있는 개념입니다. 일반적으로 FileInputStream Class를 이용하면 파일에 있는 데이터를 읽을 수 있습니다. 이때 InputStream을 연 후 파일을 읽고 마무리 후에는 Stream을 닫는 흐름을 일반적으로 가져가게 됩니다. 이런 흐름에서 exception이 발생할 수 있는 위치는 InputStream을 열때, 파일을 읽을 때, InputStream을 닫을 때 총 3군대입니다. 이럴때 exception 처리를 어떻게 할 수 있을지 다양하게 보도록.. 2020. 4. 26. [java] exception 처리하기 - throws에 관하여 안녕하세요. 오늘은 이전 시간에 이어 exception에 대해서 좀 더 알아 보는 시간을 가지고자 합니다. 우리가 이전 포스터에서 확인한 바에 따르면 exception은 JVM에서 일어나고 call stack을 따라서 처리된다고 배웠습니다. 즉, Unchecked exception의 경우 메서드 체인에 의해서 호출한 곳에 exception에 해당하는 catch가 있으면해당 해당 catch method가 실행되는 것입니다. 그렇다면 throws는 왜 있는걸까요? 결론부터 말씀드리면 unchecked exception의 경우에는 즉, RuntimeException을 상속 받는 Exception의 경우 throws는 아무런 의미도 가지지 않습니다. throws는 checked exception의 처리 방법중 .. 2020. 4. 22. [java] exception 처리하기 - 실전편 안녕하세요. 우리는 이전 포스팅에서 JVM에서 예외(exception) 처리가 어떻게 이루어 지는지를 살펴보았습니다. 예외를 처리하는 방법으로 예외복구, 예외처리 회피, 예외 전환이 있다라는 알려드렸습니다. 오늘은 실제 코드로 exception을 어떻게 처리하는지 공유하고자 합니다. 예외복구 예외복구는 예외가 발생하더라도 어플리케이션의 로직은 정상적으로 실행이 되게 하도록 처리한다는 의미입니다. 한 예로 통신의 재시도를 들 수 있습니다. 예외가 발생하면 일정 시간동안 대기를 시킨 후 다시 해당 로직을 시도하는 것입니다. 일정 횟수동안 재시도를 이런식으로 진행하며, 그래도 정상적인 응답이 오지 않는 경우 fail 처리하는 로직을 생각할 수 있습니다. 실제로 쓰이는 예제를 보도록 하겠습니다. 아래 예제는 s.. 2020. 4. 19. 이전 1 ··· 13 14 15 16 17 18 19 ··· 22 다음