본문 바로가기

전체 글

[Java/자바] JPA 에 대하여 (1) - JPA의 등장 개인적인 생각으로 개발자는 SQL 매퍼라고 생각합니다. 개발자의 주목적 중 하나는 데이터베이스에 정보를 저장하고 데이터베이스에서 정보를 꺼내와서 사용자에게 보여주는 역할을 위해 코드를 작성하는 것입니다. 사실 클린코드니, 아키텍처니, 객체지향이니, 뭐니... 등등 사실 이 모든 것은 저희가 CURD를 조금 더 잘하기 위해서 사용하는 것들이라고 생각합니다. 아직까지 정말 많이 사용하고 있는 데이터베이스는 관계형 데이터베이스입니다. 실제로 서비스를 개발하다 보면 객체와 데이터베이스에서 사용하는 패러다임의 차이로 인해 복잡한 상황들이 발생하곤 합니다.   1. 상속  자바에서는 상속관계라는 것이 있습니다. 다음과 같은 코드를 보겠습니다.  public abstract class Item { String .. 더보기
[CI/CD] GitHub와 Jenkins를 이용한 배포 자동화 구축하기 Jenkins는 소프트웨어 개발 및 배포 프로세스를 자동화하는데 도움을 주는 오픈소스 도구입니다. jenkins의 설치 방법은 구글링만 해도 간단하게 알 수 있으니 넘어가고 제가 이번에 다룰 내용은 GitHub의 Webhook(웹훅)을 이용해 빌드 자동화를 다루려고 합니다. 회사에서는 private 환경을 위해 GitLab을 사용하고 있지만 public 하게 이용 가능한 GitHub로 진행해보겠습니다.( GitLab은 jenkins에서 plugin 설치가 필요합니다. 그리고 좀 더 귀찮습니다.....) 모든 내용은 jenkins설치가 잘 되어있다는 가정 하에 진행하겠습니다.    1. GitHub 토큰 발급 우선 github 토큰을 발급해 줍니다. 제가 사용하는 IDE인 IntelliJ에서 GitHub연.. 더보기
[JAVA/자바] 옵셔널(Optional) Optional이란? Optional은 자바 8부터 도입된 클래스입니다. 해당 클래스는 어떠한 객체 혹은 어떠한 값의 Null여부를 표현하는 데 사용하기 위한 클래스입니다. 기존에는 다음과 같이 null 여부를 판단해서 처리했다면, Optional을 사용하면 가독성 있게 작업할 수 있습니다. // 기존 null 처리 방식if(temp == null) return false;else return temp;// Optional 사용 방식return Optional.ofNullable(temp).orElse(false);  Optional을 사용하면 얻을 수 이점은 다음과 같습니다. 1. null 을 명시적으로 처리할 수 있게 되고 이에 따라서 NullPointerException 때문에 발생하는 실수를 줄일.. 더보기
[JAVA/자바] 람다(Lambda) 람다식이란? 람다식은 메서드를 하나의 식으로 표현 한것이며, 쉽게말해 이름이 존재하지 않아 익명함수라고 생각 할 수 있습니다. 간단한 메서드를 람다식으로 변환하는 예를 살펴보겠습니다. 람다식 사용하기 // 기존 메서드 작성 int sum(int a, int b){ return a + b; } // 람다 방식 (int a, int b) -> { return a + b; }; 굉장히 간단하게 줄어들었습니다. 우선 기존 메서드 방식과의 차이점을 살펴보겠습니다. 익명함수처럼 사용되는 것이 바로 보입니다. 기존 메서드에서는 sum이라는 이름이 붙은 형태이지만 람다는 그렇지 않은 모습이죠. 람다를 사용하기 위해서는 다음과 같은 특징을 알아야 합니다. 매개변수가 하나라면 괄호 생략 가능 선언된 람다식의 매개변수 타입.. 더보기
[JAVA/자바] 제네릭(Generic) 제네릭(Geceric)의 정의 제네릭(generic)은 데이터 타입을 일반화하는 것. 다시 말해, 특수한 형태의 변수로 존재하다가 변수가 할당될 때 그 타입이 정해지는 것입니다. 조금 더 쉽게 말하자면, 클래스나 메서드 내부에서 사용할 변수의 타입을 외부에서 지정하는 것입니다. 개념만 들어보면 처음 듣는 개념인 것 같지만 사실 다들 한번씩 써본 형태입니다. List list = new ArrayList(); 위처럼 List 타입의 변수를 선언할 때 각 요소마다 특정 값을 저장하기 위해서 홑화살괄호() 안에 String이라고 명시한 부분이 바로 제네릭입니다. 실제로 List 클래스를 들어가 보면 다음과 같은 형태로 되어있는 걸 볼 수 있습니다. public interface List extends Coll.. 더보기
[JAVA/자바] 스트림(Stream) 스트림이란? 이 내용을 온전히 이해하기 위해서는 제네릭(Generic), 람다식(lambda), 메서드 참조(method reference)를 알아야 이해할 수 있습니다. 이 내용들은 추후에 다루면서 같이 볼 수 있게 하겠습니다. 제네릭이란?2024.04.01 - [분류 전체보기] - [JAVA/자바] 제네릭(Generic) 람다식이란?2024.04.03 - [분류 전체보기] - [JAVA/자바] Lambda(람다식)  스트림은 기존에 데이터 가공을 위해서 해왔던 작업들을 좀 더 단순하고 가독성 있게 사용하는데 쓰입니다. (람다식과 함께) 스트림은 다음과 같은 흐름으로 사용됩니다. 스트림 생성 => 스트림 가공 => 스트림 출력(데이터 사용)(생성 => 중간 연산자 => 최종 연산자) 이렇게 스트림이 사.. 더보기
node.js 실행파일 만들기 오늘은 js로 작성된 파일을 실행파일로 만드는 방법을 알아보겠습니다. 1. Node.js 다운로드 우선, node.js를 다운로드합니다. https://nodejs.org/ko Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 검색창에 node.js라고 검색하셔도 찾으실 수 있습니다. 해당 부분으로 들어가시면 본인의 운영체제에 맞게 설치파일을 찾아줍니다. 저는 최신 버전의 다양한 기능보다는 안정적인 기능을 선호하기 때문에 LTS 버전으로 다운로드하겠습니다. 다운로드하게 되면 node-v18.16.1-x64.msi 파일이 다운로드하여지는데요 msi 파일이므로 손쉽게 설치하실 수 있습니다.(v1.. 더보기
[CentOS 7/Linux]리눅스 MariaDB 바이너리 파일로 설치하기(yum없이 tar.gz이용) yum 사용이 가능한 곳이면 참 편하겠지만 운영환경에서는 보안적인 부분 때문에 대부분은 사용이 불가능 한 곳입니다. mariadDB 바이너리 파일을 이용하여 직접 다운로드하는 방식을 알아보겠습니다. 1. mariaDB 설치파일 다운로드mariadb.com/downloads/ MariaDB Products & Tools Downloads | MariaDBFind MariaDB downloads, connectors, and tools including Community Server, Enterprise Server, ColumnStore, MaxScale and Xpand.mariadb.com 위 링크로 이동하여 본인 운영체제에 맞게 선택하여 파일을 다운로드합니다.  가운데에 노랗게 색칠한 부분 Show .. 더보기