본문 바로가기
반응형

Java14

SOLID (객체 지향 설계) SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. S ( Single responsibility principle ) 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 그리고 그 책임을 완전히 캡슐화해야 한다. 이것은 클래스를 더욱 튼튼하게 만들기 위함이다. 만약 한 클래스가 여러 책임을 가지고 있다면 수정 과정에서 같은 클래스의 일부 출력 코드가 망가질 위험이 대단히 높다. 클래스는 설계도 도면과 마찬가지이다. 자동차 설계도에서 자동차를 만드는 방법만 가지고 있어야하지 완전히 다른 것을 만드는 방법까지 가지고 있을 필요도 없고 가지고 있어서도 안된다. O (.. 2022. 2. 21.
[Spring] JPA Specification Example Spring JPA Specification Simple Example 스프링 JPA Specification 예제 - Extended 'JpaSpecificationExecuter' class Repository 인터페이스에 JpaSpecificationExecutor 클래스를 extend 시켜주었다. public interface UserRepository extends CrudRepository, JpaSpecificationExecutor { } - Created methods for criteria API Specification 객체를 리턴하는 메소드를 따로 구현하였다. userId가 인자로 받은 id인 경우와 name이 인자로 받은 name인 경우(동등비교 equal)이다. public st.. 2019. 4. 2.
[Java] 가비지 컬렉션(Garbage Collection, GC)과 알고리즘 1. 가비지 컬렉션 (Garbage Collection, GC)란? 예전의 전통적인 언어인 C 등은 malloc(), free() 등을 이용해서 메모리를 할당하고, 일일이 그 메모리를 거둬야 했다. 하지만 자바 언어에서는 GC 기술을 사용하여 개발자를 메모리 관리로부터 좀 더 자유롭게 해주었다. GC 즉 가비지 컬렉션은 자바 애플리케이션에서 사용하지 않는 메모리를 자동으로 거둬들이는 기능을 말한다. 2. 메모리 영역과 JVM의 GC 관리 * 각 영역 별 설명은 이전 글을 참조하기 바란다. 이전 글 : 2017/09/08 - [Java] - [Java] JVM의 구조와 이해 - Minor GC New/Young 영역의 GC를 Minor GC라고 부른다. Eden 영역은 자바 객체가 생성되자마자 저장되는 곳.. 2017. 9. 8.
[Java] JVM의 구조와 이해 1. JVM (Java Virtual Machine)이란? 자바 가상 머신(Java Virtual Machine, JVM)은 자바 바이트코드를 실행할 수 있는 주체이다. 일반적으로 인터프리터나 JIT 컴파일 방식으로 다른 컴퓨터 위에서 바이트코드를 실행할 수 있도록 구현되나 자바 프로세서처럼 하드웨어와 소프트웨어를 혼합해 구현하는 경우도 있다. (이론적으로는 100% 하드웨어 구현도 가능하나 비효율적이다) 자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다. 따라서 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장한다. * JV.. 2017. 9. 8.
[Java] 람다 표현식, 람다란? 1. 람다 표현식(Lambda Expressions)이란? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. * 람다의 특징 A. 익명 보통의 메서드와 달리 이름이 없으므로 익명이라 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다. B. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 바디, 반환 형식, 가능한 예외 리스트를 포함한다. C. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. D. 간결성 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없다. 람다식의.. 2017. 9. 6.
반응형