테크피디아
close
프로필 배경
프로필 로고

테크피디아

  • 분류 전체보기 (7)
    • Java (4)
    • Spring (0)
    • Architecture (1)
    • AWS (1)
    • Retrospect (1)
  • 홈
  • 깃허브

도메인 간 결합도를 낮추는 방법: 인터페이스

프로젝트에서 회원 가입을 할 경우 포인트 잔액(PointBalance)을 함께 생성해줘야 하는 요구사항이 추가되었다. 즉 Member 엔티티를 생성할 때 PointBalance 엔티티도 함께 생성해줘야 했다. 먼저 회원가입 로직이 어떻게 구성되어 있는지 확인해보자.@Serviceclass MemberService( private val memberRepository: MemberRepository,) { @Transactional fun signUp(newMember: NewMember) { val member = memberRepository.save( Member( email = newMember.email, ..

  • format_list_bulleted Architecture
  • · 2026. 3. 1.
  • textsms
[Java] 금융 거래에는 BigDecimal을 사용하자.

[Java] 금융 거래에는 BigDecimal을 사용하자.

1. 개요BigDecimal은 금융 관련 연산 같이 오차가 발생해서 안되는 상황에 사용되는 타입이다. float, double과 BigDecimal을 간단하게 비교해보자(float과 double에 대한 자세한 내용은 여기를 참고하세요).내부 표현 방식:BigDecimal: 수를 정수(unscaled value)와 scale로 나눠서 표현한다. 예를 들어 1.23의 정수는 123이고 scale은 2다.float & double: 부동 소수점 표현에 따라 표현한다.정밀도:BigDecimal: 임의 정밀도(메모리의 제한 내에서 원하는 만큼의 정밀도)를 갖는다.float & double: 각각 32비트, 64비트 수로 표현하여 값의 범위나 정밀도에 제한이 있다.속도:BigDecimal: 무제한 숫자의 길이와 복..

  • format_list_bulleted Java
  • · 2024. 2. 19.
  • textsms
[Java] 객체지향 설계원칙, SOLID 알아보기

[Java] 객체지향 설계원칙, SOLID 알아보기

1. 개요 SOLID 원칙은 로버트 C. 마틴이 발표한 5가지 객체지향 설계원칙의 약자다. 각 글자는 다음과 같은 원칙을 의미한다.SRP(Single Responsibility Principle): 단일 책임 원칙OCP(Open-Closed Principle): 개방 폐쇄 원칙LSP(Liskov Substitution Principle): 리스코프 치환 원칙ISP(Interface Segregation Principle): 인터페이스 분리 원칙DIP(Dependency Inversion Principle): 의존 역전 원칙이 원칙들의 목표는 응집도는 높이고 결합도를 낮추자는 고전 원칙을 객체지향 관점에서 재정의 한 것이다. 2. 응집도와 결합도응집도를 높이고 결합도를 낮추면 유연하고 유지보수하기 용이한 ..

  • format_list_bulleted Java
  • · 2024. 1. 11.
  • textsms
[Java] 객체지향 프로그래밍에 대해 알아보자

[Java] 객체지향 프로그래밍에 대해 알아보자

1. 객체지향 프로그래밍이란?객체지향 프로그래밍이란 프로그램을 데이터와 데이터를 처리하는 행동(메소드)을 가진 객체의 집합으로 보는 프로그래밍 패러다임이다. 프로그래머는 객체의 설계도인 클래스를 통해 객체가 가져야 할 상태와 행동을 정의하고, 객체를 생성하고 조립하며 프로그램을 개발한다. 하나의 역할을 수행하기 위해 필요한 데이터와 메소드를 객체로 묶어 사용하기 때문에 재사용이 용이하고, 유연하며, 유지보수하기 쉽기 때문에 대규모 소프트웨어 개발에 사용된다.2. 객체지향 프로그래밍의 등장 배경프로그래밍 패러다임은 절차지향 프로그래밍 → 구조적 프로그래밍 → 객체지향 프로그래밍 순서대로 등장하였다. 각 패러다임은 이전 패러다임의 단점을 보완하기 위해 고안되었으며 이들의 특징은 다음과 같다.절차지향 프로그..

  • format_list_bulleted Java
  • · 2023. 12. 27.
  • textsms
[회고] 일일커밋(Daily Commit) 100일 달성!

[회고] 일일커밋(Daily Commit) 100일 달성!

꾸준히 공부하는 습관을 들이기 위해 매일 공부하고 공부한 내용을 TIL repository에 commit하자는 다짐을 한지 100일 째, 드디어 100일 연속 커밋을 달성하였다. 100일동안 '자바의 신', '스프링 입문을 위한 자바 객체 지향의 원리와 이해', '토비의 스프링'(읽는 중)을 공부하고 정리했는데 100일전과 나와 비교했을 때 나름 성장한 것 같아 뿌듯하다(아직 갈길이 멀지만 축하할 때는 축하해야 한다ㅋㅋㅋ). 앞으로 TIL 리포지토리에 기록한 내용을 정제하여 이 블로그에도 게시할 계획이다. 학습한 내용을 타인과 공유함으로써 보다 심도 깊은 사고를 하게 되며, 공유된 내용에 대한 피드백을 통해 성장할 수 있을 것으로 기대한다. 이를 통해 더욱 열심히 학습하고, 기술을 세련되게 다듬어 뛰어난..

  • format_list_bulleted Retrospect
  • · 2023. 12. 6.
  • textsms
[Java] equals와 hashCode

[Java] equals와 hashCode

equals와 hashCode는 모든 클래스의 부모인 Object 클래스에 정의되어 있는 메소드다. 각 메소드는 다음과 같은 기능을 한다.equals: 두 객체가 같은지 비교하고 boolean을 리턴한다. 오버라이딩하지 않을 경우 두 객체의 주소값을 비교한다.hashCode: 객체의 고유값을 리턴한다. 오버라이딩하지 않을 경우 객체의 메모리 주소를 바탕으로 한 해시값을 리턴한다. 따라서 equals와 hashCode를 오버라이딩하지 않고 사용하면 객체의 속성값이 아닌 주소값을 비교한 결과를 리턴하게 된다.// Person 클래스public class Person { private String name; private int age; public Person(String name, int ..

  • format_list_bulleted Java
  • · 2023. 9. 27.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (7)
    • Java (4)
    • Spring (0)
    • Architecture (1)
    • AWS (1)
    • Retrospect (1)
최근 글
인기 글
최근 댓글
태그
  • #EIP
  • #BigDecimal
  • #탄력적 IP
  • #OOP
  • #객체지향 프로그래밍
  • #회고
  • #java
  • #AWS
  • #Elastic IP
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바