본문 바로가기

전체 글266

[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.
[20220321] 개발자 일기 & TIL 개발 첫 단계가 마무리가 되어 어느 정도 여유가 생겼다. 앞으로는 새로운 cms 개발을 위한 공부에 시간을 투자해야 할 것 같다. 유지 보수에 너무 많은 노력을 쏟지 말아야겠다. 최대한 단순하게 문제를 해결하고 나머지는 개발에 치중하자. 그렇게 하는 게 회사를 위해서도 나를 위해서도 더 나은 선택일 것 같다. TIL jquery의 $.each(), $(selector).each()에서 반복문을 탈출하기 위해서는 return false;를 사용하면 된다. 이는 다른 언어의 break에 해당한다고 보면 된다. 2022. 3. 21.
System.out.println() (sysout 또는 sout) vs. Logger 자바 개발을 할 때, 결괏값이나 변수의 값을 콘솔 창에 출력하는 경우가 있다. 이유는 다양하겠지만, 애플리케이션을 실행할 때 콘솔 창을 통해 출력하는 방법은 System.out.println()을 사용하거나 Logger를 사용한다. 물론 각 방법에 장점이 있어 두 가지 방법 모두 사용해도 되지만, 적어도 규모가 있는 프로젝트에서는 Logger를 사용을 권장한다. 이번 글에서는 System.out.println() (이하 sysout)와 Logger 중 어느 것을 사용해야 할지 비교해본다. System.out.println() sysout의 최대 장점은 사용이 쉽고 별도의 라이브러리 추가가 필요 없다는 것이다. 자바를 처음 배울 때, sysout을 통해 문자열을 출력한다. 다만, 그 이외의 장점은 없고, .. 2022. 3. 18.
728x90