본문 바로가기

학습 일지129

배열보다는 리스트를 사용하라 최근 [이펙티브 자바]를 읽으면서 배열보다 리스트를 주로 사용해 온 이유에 대해 다시 생각해 보게 되었고 이 경험을 공유하고자 합니다. 배열과 제네릭의 차이를 알아보고 배열보다는 제네릭을 사용할 수 있는 리스트를 사용하는 이유에 대해 다뤄보겠습니다. 첫 번째 이유 : 배열과 제네릭의 공변성과 불공변성자바에서 배열은 공변성을 가지고, 제네릭은 불공변성을 가진다는 차이가 있습니다.배열보다 리스트를 사용해야 하는 첫 번째 이유는 제네릭의 불공변성 덕분에 타입 안정성을 보장하기 때문입니다. 이를 이해하기위해 간단한 예로 공변성과 불공변성을 알아보겠습니다. 공변성공변성은 말 그대로 '함께 변한다' 라는 뜻으로, 이를 코드 레벨에 적용해 본다면 모든 객체의 상위 클래스인 Object가 있고 하위 클래스인 Integ.. 2024. 9. 27.
『그림으로 이해하는 알고리즘』 서적 리뷰 길벗 출판사의 '개발자 리뷰어' 활동으로 『그림으로 이해하는 알고리즘』 서적을 제공받아 작성하게된 서평입니다. 특정 기술을 처음 접할 때는, 세부적인 부분에 집중하기 전에 전체적인 구조를 먼저 파악하는 것이 이해에 더 도움이 된다고 생각합니다. 흔히 말하는 '나무보다 숲을 보라'는 말처럼 말이죠. 저에게는 길벗의 '그림으로 이해하는' 시리즈의 책들이 그런 역할을 해주었습니다. 이번에 리뷰할 『그림으로 이해하는 알고리즘』 을 읽기 전,『그림으로 이해하는 AWS 구조와 기술』 과 『그림으로 이해하는 가상화와 컨테이너』 서적을 먼저 접했었는데요! 당시 위 기술들을 어떻게 공부해야 할지 막막했지만, '그림으로 이해하는' 시리즈의 책들은 심화된 내용을 다루기보다 초보자를 위한 쉬운 설명과 그림으로 개념을 쉽게 이.. 2024. 9. 8.
@Tracsactional 없이 save()가 동작한다? 개요최근 코드리뷰를 하게 되던 중, 비즈니스 로직에 @Transactional 어노테이션이 누락되어 있는 코드를 보게 되었습니다. 저는 매번 Service를 구현할 때 외부에서 호출하는 public 메인 비즈니스 로직에 아래와 같이 습관처럼 @Transactional을 명시하고 사용했었습니다.쓰기용 SQL 질의인 Insert, Delete, Update를 하나라도 포함한다면 @Transactional 명시한다.조회용 SQL인 Select만 수행하는 메서드에는 @Transactional(readOnly=true)를 명시한다. 위와 같이 습관처럼 @Transactional을 사용하다 보니, 트랜잭션이 명시되지 않은 경우 save() 메서드를 호출했을 때 데이터가 왜 저장되는지, 읽기 전용 트랜잭션에서 sav.. 2024. 8. 24.
7월 IT 연합 채용 세미나 행사에 다녀왔어요. 7월 26일 마루180에서 진행된 IT 연합 채용 세미나에 다녀왔습니다!  이번에 참가한 채용 세미나는 주니어보다는 시니어 개발자를 위한 채용 세미나 였습니다. 주니어를 위한 채용 세미나였다면 더 좋았겠지만, 당장 취업을 위해 참여하기보다 많은 인하우스 기업에서 어떤 인재상을 원하는지,또 오프라인으로 여러 기업의 소개를 직접 직접 듣고 싶어 참가하게 되었습니다ㅎ  행사장에 조금 일찍 도착했는데 샌드위치와 음료수가 준비되어 있었습니다!  약 100명 정도의 개발 직군 분들이 계셔서 생각보다 사람이 많아 당황했던 기억이 납니다ㅎㅎ 기업 발표행사는 약 3시간 정도 진행됐고 10분 정도의 간단한 오프닝 후 기업 발표가 시작됐습니다. 기업 발표는 약 1시간 30분 정도 진행되었는데, 평소 관심을 갖고 있던 기업들.. 2024. 8. 11.