본문 바로가기

WEB/Error

(5)
돈 관련 필드 타입 BudgetKeemi 프로젝트에서의 고민 BudgetKeemi는 사용자가 자신의 수입과 지출을 관리할 수 있는 웹 어플리케이션이다.예산 설정, 월별 수입/지출 확인, 지출 통계 등의 기능을 포함한다. 처음에 ERD를 설계할 때 가장 고민했던 건 돈 관련 필드는 타입을 어떻게 지정해야할까? 였다.후보로는 int, long, float, double , BigDecimal 등이 있었다. BigDecimal에 대해 알게 된 점 BigDecimal은 조사하면서 알게된 타입이다.특징은 불변 성질을 가지고 있고 매우 큰 숫자도 표현할 수 있다는 것이다.BigDecimal은 큰 숫자를 배열에 나누어서 저장하고 내부적으로 임의 정밀도 연산을 사용해 계산을 아주 정확하게 할 수 있다. 금융 계산에 필수적인 타입이다.그러..
@NotNull @NotEmpty @NotBlank BudgetKeemi 프로젝트에서의 고민데이터를 검증하다 보면 @NotNull, @NotEmpty, @NotBlank 이 세 가지 어노테이션을 자주 사용하게 된다.하지만 이 어노테이션은 서로 다른 특징을 가지고 있어 가끔 헷갈린다.@NotNull @NotEmpty @NotBlank의 특징 @NotNull:  값이 Null을 허용하지 않는다@NotEmpty: 값이 Null 이나 ""(빈문자열)을 허용하지 않는다@NotBlank:  값이 Null 이나 ""(빈문자열)," "(공백)을 허용하지 않는다문제점나는 이 3가지를 자주 헷갈리곤 해서 허용하지 않는 범위가 가장 넓은 @NotBlank를 자주 사용했다. 그러던 도중에 이번 프로젝트에서 문제가 발생했다.UnexpectedTypeException 예외가 발생..
클라이언트? 서버? 구현 문제 BudgetKeemi 프로젝트에서의 고민가끔가다 어떤 기능을 클라이언트에서 구현할지, 서버에서 구현할지 고민될 때가 있다.나도 BudgetKeemi 프로젝트를 진행하면서도 이러한 고민을 했다.(물론 데이터 검증을 진행하는 경우 서버에서 검증하는 것은 당연하다.) 이 프로젝트에서는 거래내역 데이터를 날짜 기준 오름차순 또는 내림차순으로 정렬해야하는 경우가 있었다. 이런 상황에서 어떻게 해야할까우선 둘의 차이점을 알아보자클라이언트에서 구현1. 유연성2. 서버 부담 감소3. 빠른 구현- > 소규모 서비스의 경우의문점2번 서버 부담 감소에서는 의문이 들었다.정렬 혹은 분류되지 않은 대량의 데이터를 받는게 더 부담이 아닐까?서버에서 구현1. 성능 최적화2. 일관성 유지3. 데이터 처리 로직 분리-> 정렬하는 것이..
서비스 계층 간의 의존성 BudgetKeemi 프로젝트에서의 고민코드를 작성하다보면 내가 사용하는 언어와 프레임워크 특징을 잘 사용하고 있는가에 대한 의문이 들때가 있다. 포트폴리오 만드는 취준생 입장에서 코드 리팩토링이나 비지니스 로직을 추가하는 경우가 많이 없다보니 내가 지금 작성한 코드가 일으킬 사이드 이펙트를 상상하기 힘들다.하지만 각 계층의 역할을 이해하고 구조를 고민하면 더 좋은 코드를 작성할 수 있다.그래서 늘 구조를 설계할 때 신중해야한다. 이번에는 서비스와 컨트롤러 간의 의존성 분리에 대해서 생각해보았다Spring MVC 패턴 개발에 자주 쓰이는 MVC 패턴은 컨트롤러, 서비스, 레포지토리 이 세가지 계층을 떠올리게 한다.각 엔티티마다 하나의 컨트롤러, 서비스, 레포지토리를 만들어서 서로 의존하면 참 좋겠지만 그..
FileZilla &EC2 혹시나 EC2와 FileZilla 연결할 때 필자와 같은 일이 없도록 ..! 사진에 사용자(U)칸에 구글링한 곳마다 ubuntu라고 되어있길래 아 그냥 임의로 이름을 정하는거구나 그럼 나는 linux쓰니까 linux로 써야지 하고 적었다.. 결과는 당연히 fail..... 사용자 이름은 EC2 인스턴스 실행할때 보이는 호스트 이름을 꼭 적고 저처럼 피해보지마시길..