
오늘은 2장 스칼라 첫걸음을 학습해 보도록 하겠습니다. 이번장과 다음장 3장까지 스칼라의 전반적인 내용을 살펴 봅니다. 간단하게 알고 넘어가지 좋은 부분이니 가벼운 마음으로 학습해 보겠습니다. 1단계: 스칼라 인터프리터 사용법을 익히자 ※ 스칼라 인터프리터란? 스칼라 표현식과 프로그램을 쓸 수 있는 대화형 셸(Shell)로, 스칼라의 대화형 셸은 scala라고 부릅니다. scala> 1 + 2 res0: Int = 3 계산 결과 값의 이름은 res0으로 0번째 결과라는 뜻 결과의 타입 → Int 입력 표현식을 계산해서 얻은 결과값 → 3 Int 타입은 scala 패키지의 Int 클래스를 의미합니다. 'res번호' 식별자(identifier)는 나중에 재사용할 수 있습니다. 아래 예시에서 확인할 수 있습니..
회사에서 스칼라를 사용하여 개발을 진행하게 되어, 스칼라에 대해 학습해 보려고 합니다. 회사에서 스터디도 진행하고 있지만 그래도 혼자 공부하고 정리해 놔야 더 도움이 될거 같아 기록으로 남겨 놓겠습니다. 학습은 회사에서 추천해준 책인 Programming in scala 라는 책으로 진행하였습니다. 오늘은 1장 기초가 되는 부분부터 집고 넘어가도록 하겠습니다. 스칼라(Scala)라는 이름은 확장 가능(Scalable)언어 라는 뜻입니다. 우리는 스칼라를 사용해서 작은 스크립트를 작성하는 일부터 커다란 시스템을 구축하는 일까지 광범위한 프로그래밍 과업을 할 수 있습니다. 스칼라는 표준 자바 플랫폼에서 실행할 수 있고, 모든 자바 라이브러리와 매끈하게 연동할 수 있습니다. 기술적으로, 스칼라는 객체지행(ob..
오늘은 JVM의 대한 개념이 부족한 것 같아 이 부분에 대해 학습해 보려고 한다. JVM이란 무엇은 하는 것인지, 필요한 부분들을 하나씩 알아보자. 1. JVM(Java Virtual Machine) 이란? 자바 가상 머신은 자바 바이트코드(.class)를 실행할 수 있는 주체이다. 자바와 운영체제 사이에서 중개자 역할을 수행하며, 자바가 운영체제에 구애 받지 않고 프로그램을 실행할 수 있도록 도와준다. 자바가 컴파일 되어 바이트코드, 즉 class 파일을 만들면 이 코드가 자바 가상 머신 환경에서 실행된다. 정리해 보면 바이트코드(.class)가 어느 운영체제에서든 돌아갈 수 있도록 해 주는 것이 JVM의 역할이라는 뜻이다. 참고로 JVM은 JRE(Java Runtime Environment)에 포함되..

스프링 부트와 JPA만 사용해도 개발 생산성이 정말 많이 증가하고, 개발해야할 코드도 확연히 줄어든다. 여기에 Spring Data JPA를 사용하면, 기존의 한계를 넘어 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있다. 그리고 반복 개발해 온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다. 스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA라는 프레임워크를 더하면, 지금까지 조금이라도 단순하고 반복이라고 생각했던 개발 코드들이 확연하게 줄어든다. 따라서 개발자는 핵심 비즈니스 로직을 개발하는데 집중할 수 있다. 실무에서 관계형 데이터베이스를 사용한다면 스프링 데이터 JPA는 이제 선택이 아닌 필수라고해도 과언이 아니다 ! 이제 구현을 진행해 보자. 기본 초기 ..

어제 MariaDB와 연결 하였으니 오늘은 JPA에 대해 알아보려고 한다. 회사에서 JPA 말고 MyBatis를 사용하긴 했지만 JPA는 중요하고 좋은 기술이니까 잘 알아보도록 하자! 앞서 JDBC Template이 JDBC 보다 편리하긴 했지만 여전히 SQL문을 직접 입력해 주어야 한다는 불편사항이 있다. 그런데 JPA를 사용하면 SQL 쿼리도 자동으로 처리를 해준다. JPA를 사용하면 SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있다고 한다. 그래서 개발의 생산성을 높일 수 있다! 우선 build.gradle에서 JPA관련 의존성을 추가해 주자. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' ..

오늘은 화면과 함께 Controller를 통해서 회원을 등록하고 조회하는 예제를 만들어 보자. 우선 홈 화면을 추가한다. 이때 HomeController도 생성해 준다. 소스는 아래와 같이 구성하고 8080 도메인만 입력했을 때 진입하는 화면이 될 것이다. package com.demoproject.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } ret..

오늘은 어제에 이어 스프링 빈을 등록하는 또다른 방법에 대해 알아보자. 자바 코드로 직접 스프링 빈을 등록하는 방법으로 기존 소스에서 @Service, @Repository, @Autowired 어노테이션을 제거하고 시작하자. 어노테이션을 지우고 아래 경로에 SpringConfig.java 파일을 하나 생성한다. 그리고 내용을 아래와 같이 채워준다. package com.demoproject.demo; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.demoproject.demo.repository.MemberRepository; i..

오늘은 스프링 빈을 등록하는 방법에 대해 알아보도록 하자. 스프링 빈을 등록하는 2가지 방법이 있다. 컴포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록 이중에서 1번 컴포넌트 스캔과 자동으로 의존관계를 어떻게 설정하는지 알아보도록 하자. service에서 돌아간 로직을 화면에 뿌려줄 것이다. 그러려면 controller와 view가 필요하다. 그래서 MemberController를 만들건데 MemberController는 MemberService를 통해 데이터를 등록하고 조회할 수 있어야 한다. 이러한 것을 의존관계가 있다고 표현하고 MemberController가 MemberService를 의존하고 있다고 표현한다. 이제 이러한 작업을 구현해보자. 먼저 Controller 경로에 M..