본문 바로가기
반응형

전체 글350

1주차 Server 학습 : 맥북 M1, UTM을 사용해 Ubuntu 20.04.4 LTS 사용하기 드디어 UMC 서버 스프링 부트 스터디 시작!!!! 일단 해당 주차에 기억하고 싶은 내용과 챌린지 과제를 포스팅할 예정입니다. M1 맥북에서 Ubuntu를 사용하려고 공부를한 과정을 남기려고 작성한 글이다. 먼저 필자는 M1에서 사용 가능한 가상 머신을 찾아다녔다. 패러렐즈라는 가상 머신은 유료였다. 그래서 패러렐즈는 넘기고 이전에 윈도우 환경에서 사용해 본 VMWARE를 찾아보았다. M1을 지원하는 버전이 있어서 다운을 받고 우분투 for arm을 다운로드하였다. 그러나 VMWARE는 필자의 컴퓨터에서 어느 순간부터 진행이 되지 않았다. VMWARE도 포기하고 다른 가상 머신을 찾아다니던 중 UTM이라는 가상머신을 발견했다. UTM은 M1 실리콘 칩을 지원하는 무료 가상머신이었다. 그래서 UTM 가상 .. 2022. 3. 17.
스트림(Stream) 스트림이란? 스트림은 자바 8 API에 새로 추가된 기능이다. 스트림을 이용하면 선언형(즉, 데이터를 처리하는 임시 구현 코드 대신 질의로 표현)으로 컬렉션 데이터를 처리할 수 있다. 또한 스트림을 이용하면 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 얼마나 코드가 간단해지는지 직접 눈으로 확인해보자! 먼저 기존 자바 코드다. List lowCaloricDishes = new ArrayList(); for(Dish dish : menu){ if(dish.getCalories() < 400){ lowCaloricDishes.add(dish); } } Collections.sort(lowCaloricDishes, new Comparator(){ //익명 클래스 전달 publi.. 2022. 3. 11.
JPQL 중급 문법 2023. 02.07 18:20 복습 시작 이제 상대적으로(?) 저번 시간보다 좀 더 난이도 있는 JPQL 문법에 대해 알아보겠다. JPQL 경로 표현식 JPQL에서 사용하는 경로 표현식을 알아보고 경로 표현식을 통한 묵시적 조인도 알아보자. 경로 표현식이라는 것은 쉽게 이야기해서 .(점)을 찍어 객체 그래프를 탐색하는 것이다. select m.username -> 상태 필드 from Member m join m.team t -> 단일 값 연관 피드 join m.orders o -> 컬렉션 값 연관 필드 where t.name = '팀A' 경로 표현식 용어를 정리해보자. 상태 필드(state field) : 단순히 값을 저장하기 위한 필드 (ex: m.username) 연관 필드(association f.. 2022. 3. 10.
메서드 참조 메서드 참조 이제 람다 표현식에 이어 메서드 참조에 대해 알아보자. 메서드 참조를 이용해 기존의 메서드 정의를 재활용해서 람다처럼 전달할 수 있다. 때로는 람다 표현식보다 메서드 참조를 사용하는 것이 더 가독성이 좋으며 자연스러울 수 있다. 다음은 메서드 참조와 새로운 자바8 API를 이용한 정렬 예시다. //기존 코드 inventory.sort((Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()))); //다음은 메서드 참조와 java.util.Comparator.comparing을 활용한 코드다. inventory.sort(comparing(Apple::getWeight)); //이제부터 이 문법에 대해 알아보자. 메서드 참조는 특정 메서.. 2022. 3. 9.
람다 표현식이란? 람다란 표현식이란? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징은 아래와 같다. 익명 : 보통의 메서드들과 달리 이름이 없으므로 익명이라 표현한다. 함수 : 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 : 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 간결성 : 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. 람다는 파라미터, 화살표, 바디로 이루어진다. (Apple a1, Apple a2) -> a1.get.. 2022. 3. 8.
JPQL 기본 문법 2023. 02.07 17:40 복습 및 정리 시작 JPA는 복잡한 검색 조건을 사용해서 엔티티 객체를 조회할 수 있는 다양한 쿼리 기술을 지원한다. 우리는 이제 그중에서도 제일 중요하고 기본이 되는 JPQL에 대해서 알아보겠다. JPQL JPQL은 객체지향 쿼리 언어다. JPA를 사용하는 사람들은 필수로 JPQL을 학습해야 한다. 우리가 JPA를 개발하다 보면 em.find()메소드로는 복잡한 검색 쿼리를 데이터베이스에 보낼 수 없다. 따라서 애플리케이션이 필요한 데이터만 데이터베이스에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요하다. 또한 우리는 ORM을 사용해 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 개발하므로 검색도 테이블이 아닌 엔티티 객체를 대상으로 하는 방법이 필요하다. 즉 .. 2022. 3. 7.
반응형