본문 바로가기

분류 전체보기268

[20220331] 개발자 일기 & TIL 개발 프로젝트의 1차 작업이 거의 마무리되었고 자잘한 수정 사항이 계속되고 있다. 내일 정도면 완전히 끝나고 다른 작업을 맡거나 아니면 새로운 cms 도입을 위한 공부를 하게 될 거 같다. 회사 cms도 좀 더 파헤쳐 보고 정리하는 작업도 할 수 있었으면 좋겠다. TIL early return에 관한 글을 읽었다. early return이란 함수에서 조건을 충족하기만 하면 아래 작업을 수행하지 않고 바로 return해 버리는 것을 말한다. if-else문이나 if-else문을 중첩해서 사용하는 경우보다 가독성이 좋고 return이 바로 이루 어지므로 좀 더 속도도 빠를 것이다. 조건이 A가 아니면 B인 경우처럼 명확한 경우에는 if-else 문을 써도 무방하겠지만, if-else if-else if 나 .. 2022. 3. 31.
[20220330] 개발자 일기 회사 CMS에서 Service를 사용할 때 인터페이스를 주입하고 인터페이스를 ServiceImpl 클래스에 메서드를 구현하여 사용하고 있었다. 이렇게 사용했을 때 인터페이스를 구현한 메서드가 아닌 ServiceImpl에만 있는 메서드는 사용이 불가능했다. 그래서 ServiceImpl을 직접 주입해서 사용하려고 했는데 빈을 찾지 못해서 실패했다. 결국, 인터페이스에도 메서드를 추가해줘서 해결했다. 이런 방식은 매번 인터페이스와 구현 클래스에 두 번 작성해줘야 해서 번거로운 것 같다. 좀 더 나은 해결책이 있는지 찾아보려고 한다. 2022. 3. 30.
[20220329] 개발자 일기 & TIL 스프링의 컨트롤러를 다루면서 생각해보니, 하나의 메서드는 뷰 이름을 리턴해주는 게 맞지 않을까 하는 생각이 들었다. 뷰가 아니라 다른 메서드의 매핑 값으로 redirect 해버리면, 코드를 읽는 사람은 그 메서드가 어떤 작업을 수행하는지 알기 위해 그 메서드를 찾아가야 한다. 나는 이게 절차적 프로그래밍의 goto문 같다는 생각이 들었다. goto문이 코드를 읽기 어렵게 만들기 때문에 지양하라고 하듯이 redirect를 쓰면 컨트롤러 메서드 간에 결합도가 높아지기도 하니까 안 쓰는 게 어떨까 싶었다. 대신 이동이 필요하다면, 뷰에서 자바스크립트로 이동시키려고 한다. 또, 컨트롤러에서 url에 파라미터로 데이터 전달하지 말고, model 객체로 전달하자. TIL 자바스크립트에서 keydown, keypre.. 2022. 3. 29.
[20220328] 개발자 일기 & TIL 집안 사정으로 인해 지난주에 TIL을 하지 못했다. 지지난주부터 조짐이 있었는데 일이 터져버리는 바람에 어쩔 수가 없었다. 이번 주부터는 열심히 다시 시작해보려고 한다. 스프링 @Transactional 애너테이션의 propagation 옵션 Propagation.REQUIRED: 기본값. 부모 트랜잭션 있으면 부모 트랜잭션 내에서 실행. 없으면 새로운 트랜잭션 생성. 자식 트랜잭션 내 예외 발생 시 부모 트랜잭션도 롤백. Propagation.REQUIRED_NEW: 항상 새로운 트랜잭션 생성. 부모 트랜잭션과 자식 트랜잭션이 독립적이므로, 자식 트랜잭션 내에서 예외 발생 시 자식 트랜잭션만 롤백되고 부모 트랜잭션은 롤백 안 됨. Propagation.NESTED: 해당 메서드가 부모 트랜잭션에서 진행.. 2022. 3. 28.
728x90