본문 바로가기
728x90
반응형

개발/JAVA9

[JAVA] 단위 테스트는 무엇이며, Junit5 에 대해 알아보자. 들어가기 전에 개발을 하면서 무엇보다도 중요한 점 중 하나는 안정적인 시스템을 구축하는 것입니다. 안정적인 시스템을 구축하기 위해서는 여러 테스트를 진행해야 하고, 테스트 케이스를 나누어 이상이 있는지 확인해야 합니다. 그러나 실무에서 긴급한 변경사항이나 예상하지 못한 버그는 개발자들을 괴롭힙니다. 때로는 시간에 쫓겨 테스트를 제대로 하지 못하고 구축하신 경험도 있으실 겁니다. 저는 SI 기업에서 프로젝트를 진행하신 경험이 있고, '기한일이 촉박하다' 등 여러 가지 이유로 단위 테스트를 진행하지 않고 통합 테스트를 진행한 경험이 있습니다. 심지어 기능 테스트로만 진행하신 분들도 있을 겁니다. 과연 운영 중에 문제가 없었을까요? 여러 서비스 기업에서는 TDD (테스트 주도 개발)을 진행 중이며, 단위 테스.. 2023. 11. 29.
[JAVA] ReentrantLock 이란? 들어가기 앞서, 동기화를 위하여 synchronized 키워드를 사용하다 보니, 해당 키워드 말고 다른 것들은 무엇이 있을까 찾아보게 되었습니다. 그러다가 발견한 것이 ReentrantLock입니다. 해당 글에서는 아래 3가지 질문으로 구분 지어 작성해 보도록 하겠습니다. ReentrantLock 이란? ReentrantLock 사용하는 방법 및 예시 ReentrantLock VS synchronized 의 차이점은 무엇이 있나요? 1. ReentrantLock 이란? JAVA 에서 동시에 여러 개의 스레드가 접근하는 것을 제어하기 위한 동기화 메커니즘 중 하나입니다. 수동으로 잠금 영역(Lock) 의 시작점과 끝점을 설정할 수 있는 객체입니다. 즉, 유연한 동기화를 제공합니다. 2. ReentrantL.. 2023. 11. 1.
[JAVA] JAVA 11 에서 JAVA 17 으로 들어가기 앞서 ' 자바 최신 버전이 무조건 좋아? '라는 질문에 필자는 '응'이라고 대답하기는 어려울 것 같습니다. 물론 기능이 추가되고 편의성을 위해 여러 가지를 제공해 주는 것은 부정할 수 없고 너무나도 감사한 일입니다. 실무에서 자바 버전에 대해 라이브러리나 플러그인 호환성을 고려하지 않고 마음대로 올려버리면, 빨간 줄의 지옥을 맛볼 수 있습니다. 아직도 실무에서는 자바 8 버전을 사용하는 곳이 많고, 운영하시는 시니어분들의 마음과 안전을 고려하였을 때 자바의 업그레이드와 마이그레이션을 시도하기에는 어려운 상황입니다. 그럼에도 필자는 이번에는 자바 17에 대해서 알아보고 사이드 프로젝트를 자바 17 로 진행할 예정입니다. 자바 17 은 여러 가지 의미로 중요합니다. '자바' 하면 떠올리는 프레임워크.. 2023. 10. 4.
[JAVA] JAVA8 과 JAVA11 의 차이점을 알아보자. 들어가기 앞서 JAVA 를 버전별로 차이점들을 작성하고 있지만, 정확하게는 추가된 기능이나 특징들을 설명하는 글입니다. 실무에서 SpringBoot 를 사용하시거나, 새로운 SpringBoot 버전이 나와 릴리즈노트를 확인하시게 된다면 권장 자바 버전이 있는 것을 확인하실 수 있습니다. 예를 들어, SpringBoot 3.x 이상 부터는 자바 17 버전 이상을 지원합니다. 신규 버전은 앞으로도 계속 나올 것이고 변화하는 세상에 맞춰가며 공부하는 것이 개발자의 숙명이자 묘미가 아닐까 싶습니다. 비록 지금은 JAVA 11 버전에 대해서 작성하고 있지만 조만간 JAVA 17 버전으로 찾아뵙도록 하겠습니다. LTS(Long-Term Support) 란? 자바의 LTS(Long-Term Support) 버전은 장.. 2023. 9. 23.
[JAVA] 함수형 프로그래밍 들어가기 앞서 JAVA 8 버전부터 함수형 프로그래밍을 지원하기 위해서 람다 (lambda) 와 스트림(stream) 이 되었습니다. 람다와 스트림을 사용하여 함수형 프로그래밍 스타일로 자바 코드를 작성할 수 있습니다. 람다와 스트림 없이도 자바 코드를 작성하는 데에는 어려움이 없지만, 람다와 스트림을 사용하는 가장 큰 이유는 작성하는 코드의 양을 줄일 수 있고, 읽기 쉬운 코드를 만들 수 있기 때문이다. 함수형 프로그래밍 이란? 프로그래밍 패터다임 중 하나로, 자료 처리를 수학적 함수의 계산으로 다루는 방식을 의미합니다. 이러한 프로그래밍 스타일은 상태와 가변 데이터를 최소화하고 대신 함수의 응용을 강조합니다. 함수형 프로그래밍은 데이터의 불변성(immutable)을 유지하며, 결과에 관심을 두며 과정.. 2023. 9. 22.
[JAVA] 접근 제어자 (Access Modifier) 에 대하여 접근 제어자(Access Modifier) 이란? 접근 제어자(Access Modifier)는 프로그래밍 언어에서 클래스, 메서드, 변수 등의 멤버에 대한 접근 권한을 제어하는 키워드입니다. 이것은 코드의 가시성과 보안을 관리하며, 다른 부분에서의 접근을 제한합니다. 주로 Java와 같은 객체 지향 프로그래밍 언어에서 사용됩니다. 다양한 접근 제어자가 있으며, 일반적으로 사용되는 접근 제어자를 순차적으로 설명드리도록 하겠습니다. Public 어디서든 접근 가능한 가장 개방적인 접근 제어자입니다. public 접근 제어자가 붙은 변수나 메서드는 어떤 클래스에서도 접근이 가능합니다. PublicSeo.java package seo; public class PublicSeo { protected String .. 2023. 9. 16.
728x90
반응형