분류 전체보기16 함께 자라기 인공지능으로 대체되지 않으려면 학습하기 힘든 환경에서 학습하기 힘든 주제를 골라야 한다. 인공지능이 수집하기 힘든 것들을 학습해야 한다고 받아들였다. 구글링으로 얻을 수 있는 얕은 지식보다 서적으로 깊은 지식을 얻는다. 개발자로 전직 준비할 때는 회사에 들어가면 내가 기술적으로 부족해서 힘들 줄 알았는데 사람이 하는 일은 다 사람 간의 관계도 중요하더라. 소프트 스킬도 중요하다. 타당성과 피드백이 있는 환경에서 일하기 피드백이 부족하다면 내 실수를 인지하지 못할 수도 있다. 업무에서 불안함이나 지루함을 자주 느끼면 실력이 늘지 않는 환경에 있는 것이다. 누군가를 설득하고 싶다면 논리성과 객관성만을 따지지 말고 그 사람과의 신뢰와 그 사람이 중요하게 생각하는 것, 이야기를 어떻게 전달하는 걸 선호하는지를 .. 2023. 1. 31. @Transactional 어노테이션과 AOP @Transactional 어노테이션을 달면, 트랜잭션을 커밋하거나 예외가 발생하면 롤백하는 코드는 어떻게 동작하는가. - 프록시 방식의 AOP가 적용된다. - 트랜잭션을 처리하는 객체와 비즈니스 로직을 분리할 수 있다. - @Transactional 어노테이션이 특정 클래스 안에 존재하면, 프록시 객체를 스프링 컨테이너에 등록한다. 실제 service layer 대신에 프록시를 스프링 빈으로 등록한다. 프록시 객체 내부에서 실제 service 객체를 참조한다. 프록시 객체는 service를 상속해서 만들어지기 때문에 다형성을 사용해서 프록시를 주입할 수 있다. 트랜잭션 어노테이션을 사용했는데 트랜잭션이 적용되지 않는 경우 public class HelloService { public void hell.. 2022. 6. 20. case when exists 값이 있는지 없는지 여부를 조건으로 두고 싶을 때 사용 가능 order by에도 쓸 수 있음 A테이블의 id를 참조하고 있는 B테이블에 row가 있는지 여부로 A테이블을 정렬할 때 다음과 같이 사용 가능 order by case when exists (select 1 from table_B where table_B.table_A_id = table_A.id) then 0 else 1 end 2022. 3. 27. ObjectUtils.isEmpty ObjectUtils public static boolean isEmpty(@Nullable Object obj) { if (obj == null) { return true; } else if (obj instanceof Optional) { return !((Optional)obj).isPresent(); } else if (obj instanceof CharSequence) { return ((CharSequence)obj).length() == 0; } else if (obj.getClass().isArray()) { return Array.getLength(obj) == 0; } else if (obj instanceof Collection) { return ((Collection)obj).isE.. 2022. 3. 27. 이전 1 2 3 4 다음