New

  • JPA :: Auditing 엔티티 공통 정보 추가하기

    Auditing JPA 에서 도메인을 RDB 테이블에 매핑할 때, 도메인들이 공통으로 가지고 있는 필드들 존재 생성일자, 수정일자, 생성자, 수정자 등 JPA 에서 Audit 기능 제공 Spring Data JPA 에서 시간 값을 자동으로 넣어줌 Auditing 예시 코드 build.gradle 에 의존성 추가 dependency { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' } 스프링 부트에서 gradle 로 의존성을 관리한다면 spring-boot-st..

  • Java :: Stream으로 Random 수 생성

    난수를 생성하는데 사용하는 Random 클래스 에는 아래 인스턴스 메소드들이 포함되어 있다. 이 메소드들은 해당 타입의 난수들로 이루어진 스트림을 반환한다. IntStream ints() LongStream longs() DoubleStream doubles() 이 메소드들이 반환하는 스트림은 크기가 정해지지 않은 무한 스트림 이므로 limit() 도 같이 사용해서 스트림의 크기를 제한해주어야 한다. limit() 은 스트림의 개수를 지정하는데 사용되고 무한 스트림..

  • Java :: 람다와 스트림 (2/2)

    남궁성 저자의 Java의 정석 3판 스터디 스트림이란 ? 많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고, for 문이나 Iterator 를 이용해 코드를 작성했었다. 하지만 이런 방식의 코드는 너무 길고 가독성이 떨어진다. (재사용성도) 또 다른 문제는 데이터 소스마다 다른 방식으로 다뤄야한다는 것이다. 예를들어 List 를 정렬할 때는 Collections.sort() 를 사용해야 하고, 배열을 정렬할 때는 Arrays.sort() 를 사..

  • Java :: 람다와 스트림 (1/2)

    남궁성 저자의 Java의 정석 3판 스터디 자바는 자바8 (JDK1.8) 에서 람다식이 추가되면서 객체지향언어인 동시에 함수형 언어가 되었다. 람다식에 대해 알아보자 😊 람다식이란 ? 람다식은 간단히 말해 method 를 하나의 식(expression)으로 표현한 것 이다. method 를 람다식으로 표현하면 method의 이름과 반환값이 사라지므로, 람다식을 익명함수(anonymous function) 이라고도 한다. int[] arr = new int[5]; Arrays.setAll(..

  • Java :: Collection Class

    남궁성 저자의 Java의 정석 3판 스터디 이전 글에서 Collections Framework 에 대해서 알아보았다. 이번에는 Collections Framework 의 클래스들을 알아보고자 한다. 다룰 클래스 ⬇️ ArrayList LinkedList Stack, Queue Iterator, ListIterator, Enumeration Arrays Comparator, Comparable HashSet TreeSet HashMap, Hashtable TreeMap Properties Collections ArrayList List 인터페이스를 구현했고, 기존의 Vector 를 개선..

Hot

  • Python :: 5 - 여러 번 반복하는 일을 하자

    앞 장에서 우리는 무한 루프 구조를 살짝 경험해보았다. 프로그램에서 "반복" 이라는 것은 큰 의미를 가진다. 프로그램을 작성하는 것은 결국 우리가 직접 하기 어려운 일들을 컴퓨터에게 맡기는 것인데, 어떤 일을 반복해야 하는 횟수가 클수록 컴퓨터에게 맡겼을 때의 효율은 올라간다. "반복" 하기 위해서는 반복문을 사용하는데, 반복 구조를 사용하면 프로그램이 간결해지게 된다. 예를 들어 동일한 작업을 반복하기 위해..

  • Python :: 8 - 연관된 데이터를 딕셔너리로 짝을 짓자

    이전 장에서는 리스트와 튜플이라는 자료형에 대해 알아보았다. 이번에는 키를 이용해서 값을 추출할 수 있는 자료형인 "딕셔너리 dictionary" 에 대해서 알아보자. 주로 데이터베이스에서 흔히 볼 수 있는 구조인데, 딕셔너리는 값 value 과 관련된 키 key 가 있다는 것이 큰 특징이다. 딕셔너리를 만들 때는 중괄호 {} 를 사용한다. 간단하게 전화번호부를 만든다고 가정하고 딕셔너리에 대해 살펴보자. phone_book = {} # 공..

  • Python :: 7 - 데이터를 리스트와 튜플로 묶어보자

    이번 장에서는 여러 개의 데이터를 하나로 묶어서 처리하는 리스트와 튜플을 배워보자. 지금까지는 주로 숫자와 문자열을 변수에 저장하였다. 하지만 어떤 경우에는 여러 개의 데이터를 하나로 묶어서 저장하는 것이 필요하다. 파이썬에서는 "리스트 list" 와 딕셔너리"dictionary" 를 이용하여 여러 개의 데이터를 한꺼번에 저장하고 처리할 수 있다. height = 174.2 학생 한 명의 키를 저장한다면 위와 같이 변수에 실수 데이..

  • Python :: 10 - 넘파이로 수치 데이터를 처리해보자

    각자 파이썬을 공부하기 시작한 이유는 여러 가지가 있을 것이다. 프로그래밍을 처음 배우는 사람이 접하기 쉬운, 간편하면서 강력한 언어이기 때문일 수도 있고, 간단한 스크립트를 작성하여 자동화를 돌리고자 하는 사람도 있을 것이다. 또 Django 프레임워크를 이용해 웹 개발을 하고자 하는 사람도 있을 거라고 생각한다. 하지만 파이썬의 또 강력한 점은 데이터를 분석하고자 할 때 다양한 모듈들을 지원하기 때문에 데이터..

  • Python :: 12 - 판다스로 데이터를 분석해보자

    판다스는 무엇이고 왜 사용하는가? 우리는 지금 파이썬을 이용해서 데이터를 다루고 처리하는 것을 공부하고 있다. 이 때까지 파이썬은 많은 데이터를 가지고 연산하고 가공하는 데에 우수한 능력을 보여주었다. 그런데 엑셀 파일과 같이 테이블 형태의 데이터에 대한 통계적 분석이나 데이터 항목 사이의 연산 등에는 적합하지 않았다. 이 때 "판다스 Pandas" 를 이용한다. 판다스는 넘파이를 기반으로 한 도구이고 다음과 같은..