본문 바로가기

프로젝트/리팩토링14

Exception의 종류들 Exception을 control하는게 리팩토링에서 굉장히 중요하기 때문에, Exception의 종류들과 특징을 정리하고자 한다. Exception은 CHECKED, RUNTIME->UNCHECKED이렇게 2가지 종류가 크게 있다고 할 수 있다. ERROR는, OUTOFMEMEORY,SLIDEDEATH 등등 처리하기가 굉장히 힘들다 . 우리는 주로 EXCEPTION에 집중한다. CHECKED EXCEPTION과 UNCHECKED의 차이는, UNCHECKED는 RUNTIMEEXCEPTION을 상속 받는 다는 것이다! CHECKED EXCEPTION의 경우에는 반드시 예외를 처리해야한다. 1. METHOD에 THROWS EXCEPTION 추가 2. TRY -> CATCH방식으로 예외를 처리해야한다 . ROL.. 2024. 1. 16.
오류보단, 예외로 처리하자 주로 Controller에서 발생한다. -> shutdown이라는 method가 있을때, 그 내부에서 exception까지를 모두 control하기 때문. 주로 try,catch에 따라서 처리를 하게되고 . 해당 exception을 control하는 역할을 분리한다. 1. 예외가 발생했는데 catch에서 하는일이 없다? : 이는 반드시 지양하며, 최소한 log라도 발생시켜주는 것이 좋다. 2. try catch를 사용하지 않는 것이 좋기는 좋다 ex) 환율이나 경제 api를 가져올때 -> 신한에서 없으면 하나은행으로 3. 만약에 필요하다면.. 예외를 받아서 더 구체적인 예외를 발생시키자. 이 느낌이다. 만약에 service에서 무슨 일을 한다고 하면. 그때 exception이 발생할 것이다. 이때 발생하.. 2024. 1. 16.
객체를 망치지 않는, Lombok의 사용 여태까지는 모든 공부 과정에서 Lombok을 사용해왔다. 이러한 Lombok은 생성자의 형성 등 간단하고 명료하게 객체의 생성을 지원한다. 허나 Lombok의 오사용은, 객체를 망가뜨릴수 있다. 1. @DATA를 지양해야 할 수 있다. ID,EMAIL,NAME이 있는 TABLE이 있다고 생각해보자 . 무분별하게 모든 FIELD에 대해 생성자를 형성했다고도 가정해보자 . 그렇다면 , 생성자로 들어올 수 있는 EMAIL은 EMAIL의 변경이 가능함을 의미하는 것이 아닌가? 혹은, EMAIL과 NAME이 동시에 바뀌어야 한다면 (즉, 데이터의 쌍이 있다면) SETTER가 이러한 쌍의 변경이 아닌 한 데이터만의 변환을 유발할 수도 있다. @EQUALSANDHASHCODE는 두 객체의 값과 동일성을 비교해준다. .. 2024. 1. 16.
패키지 구조 Layer과, Domain 형 계층이 있다 . Layer는 controller끼리, config끼리 묶이고 domian 같은 경우는 coupon -> controller,domain등으로 묶는 구조이다. Layer구조시는, 전체적인 구조를 쉽게 파악 할 수 있다. -> controller면 거기서 하면 된다. 하지만, 코드의 응집력 (코드끼리 분리되어 있는 것)이 떨어질 수 밖에 없다. Domain : 코드들이 응집되어있어, 상세적인 이해가 가능하다. 하지만 도메인 구조 없이는 이해가 굉장히 힘들다. Domain 구조가 최근에는 가장 권장하는 구조이다. 주로 config,error(exception),service,dto,table,repository등을 포함한 구졸 설계한다. 전체 범위에 적용되는 것도.. 2024. 1. 16.