[Java] ==, equals(), Objects.equals()
·
Study/Java
📝 개요프로젝트를 진행하다보면 값을 비교해야되는 경우가 많이 있다. 예를 들어 사용자의 권한 상태가 “일반” 인지, “관리자” 인지 혹은 삭제 상태가 Y 인지, N인지 값의 일치를 비교한다. Java 에서 객체(값) 비교는 상황에 따라 3가지 방식이 대표적으로 쓰인다. 비교 대상의 객체에 따라서 값 비교하는 방식이 다르고(배열, 컬렉션) 비교하는 기준에 따라서(정렬, 크기 등 : Comparator 인터페이스 활용) 개발자가 커스텀하여 비교하기도 한다. 다음은 값의 비교(일치/불일치) 가장 기본적으로 사용되는 방식에 대해서 알아보겠다.🚀 “==” 비교 연산자 (Equality Operator)1️⃣ 개념== 는 Java 에서 비교연산자 이다. 기본 의미는 좌변과 우변이 같은가 를 비교하는 연산자이다...
[DataBase] Oracle Database
·
Study/DataBase
📝 개요Groupware 프로젝트를 진행하면서 Oracle DB 를 사용하기로 결정했었다. Oracle DB 는 상용 관계형 데이터베이스 시스템 중 하나로써 강력한 안정성, 보안, 대규모 데이터 처리에 최적화 된 아키텍처를 보유하고 있다. 덕분에 금융, 공공, 대기업 등 다양한 실무 현장에서 표준처럼 사용한다. 프로젝트 진행을 위해서 Oracle DB 를 세팅하는 과정에서 Oracle DB 에서 사용하는 개념들이 궁금해졌다. CDB/PDB, DB 계정 및 권한 관리, DB 를 백엔드 서버와 연결하기 위해 확인하는 방법과 상태 등 세팅하는 과정에서 궁금한 개념들을 찾아보았다.이번에는 Orcle DB 를 세팅하는것이 아닌 관련 개념들을 정리하려고 한다.🚀 개념1️⃣ 데이터베이스 (DB)데이터베이스란 구조..
[Spring-Boot] MyBatis & VO/DTO & Lombok
·
Study/Spring-Boot
📝 개요Spring Boot 프레임워크로 백엔드 서버를 개발하게 되면 DB와 연동에 어떤 ORM, SQL Mapper 를 사용할지 고민해야된다. 프로젝트의 특성과 환경에 따라서 ORM, SQLMapper 을 결정짓게 되는데, 한 가지로만 정해놓고 쓰는게 아닌, 각각의 장점을 살려서 사용하기도 한다. (JPA + MyBatis or JDBC) Groupware 프로젝트를 진행하면서 MyBatis 를 사용한것은 일단 가장 익숙한 것이 컸다. 그리고 DB 를 My SQL 이나 MariaDB 를 선택하지 않고 OracleDB 을 선택하면서 Oracle 베이스의 쿼리 문법을 학습하려는 의도 도 있었다. 하지만 Groupware 프로젝트 특성상 기본적인 CRUD 에 기능이 집중되어 있으므로 JPA 를 선택하는 것..
[Java] Utility Class
·
Study/Java
📝 개요백엔드 시스템을 개발할 때 인증 처리, 쿠키 관리, 문자열 변환과 같이 여러 도메인에서 반복적으로 사용되는 공통 기능이 자주 등장한다. 이러한 기능을 각 서비스나 컨트롤러 내부에 private 으로 매번 새로 구현하거나 복사해서 사용하는 것은 코드의 중복과 유지보수의 어려움, 오류 발생 확률 증가로 이어질 수 있다.이러한 문제를 해결하기 위해 유틸리티 클래스(Utility Class) 를 도입하게 되었다. 유틸리티 클래스는 객체의 상태를 가지지 않고, 정적(static) 메서드로만 공통 기능을 제공하는 구조로 코드의 일관성 유지와 생산성 향상에 효과적이다.실제 그룹웨어 백엔드 프로젝트에서도 인증 관련(AuthUtil), 쿠키 처리(CookieUtil), 날짜 연산(DateUtil), 문자열 처리..
[Java] record
·
Study/Java
📝 개요기존에 자바에서 단순 데이터 전달용 객체 (DTO, VO) 는 필드, 생성자, getter, setter, equals, hashCode, toString 등 전부 만들어야 했다. 이런 Boilerplate Code 들은 실수를 야기하고 코드의 양도 많아져 가독성을 떨어트리게 된다. Java 에서 이런 반복과 실수를 줄이기 위해 Java14 에서 Preview 도입, Java16 에서 공식적으로 record 를 도입하게 된다.Spring Framework 로 Java 기반 백엔드 서버를 개발하게 되면 DTO 와 VO 에 대한 정의가 많아지는데, 이를 record 를 통해서 대체 가능하다. record 를 알아보면서 적용된 프로젝트의 DTO 와 VO 설계를 살펴보겠다.📀 Record1️⃣ 특징자..