본문 바로가기

분류 전체보기43

30대에 개발자를 시작한, 비전공자 2년차 개발자의 2024 연말 회고 안녕하세요.저는 정확히 서른 두살에 개발자를 시작했고, 현재 2년차 백엔드 개발자로 회사를 다니고 있는 김설영이라고 합니다. 저의 이야기가, 저와 같은 상황에 처한 분들께 조금이나마 도움이 되기를 바라는 마음에 간만에 블로그에 오랜만에 글을 작성하게 되었는데요! 이 목적을 달성하기 위해서, 제목을 어떻게 작성해야 내 이야기가 도움이 될만한 분들이 나의 글을 찾을 수 있을까 정말 많은 고민이 들더라구요. 그러다 문득, 3년전 개발자를 준비하던 저의 마음은 어땠는지, 어떤 글들에서 도움을 얻었는지 생각 해보게 되었습니다. 3년 전의 저는 "30대에 개발자 시작이면 너무 늦은거 아닐까?", "널린게 전공잔데 나같은 비전공자, 게다가 나이도 적지 않은데 과연 뽑아는 줄까?"라는 고민들을 했었고, 그 고민에 대한.. 2024. 12. 22.
[인프콘 2024] 투자한 시간과 비용에 비해 많은 것들을 얻어갈 수 있는 세미나 😊 내가 인프런을 처음 알게된 것은 2022년 3월이었으니, 벌써 2년이 넘었다. 그 때는 다른 직종에서 일하고 있던 때였는데, 우연하게 접한 프로그래밍을 접해 이것 저것 재밌게 해보던 때였다.당시에는 소중한 개발자 지인 한분이 계셨는데, 웹 개발자가 되려면 어떻게 해야하냐는 질문에, "국비교육 이런거 다 제치고 인프런의 영한쌤 강의를 봐라" 라고 추천 해주셨던 기억이 난다. 처음 인프런 강의를 접했을 때, 내가 일하던 곳에는 이런 고퀄리티의 강의를 저렴하게 볼 수 있는 플랫폼이 없는데.. 하면서 놀라워 했던 기억이 난다. 그렇게 영한쌤의 스프링 입문 강의를 전부 시청한 뒤, 홀린듯 로드맵을 모두 결제했고, 2023년에는 백엔드 개발자가 될 수 있었다.2023년 인프콘이 열렸을 당시, 나는 2022년 인프콘.. 2024. 7. 6.
[Spring] 트랜잭션 상태를 확인하는 방법 org.springframework.transaction.support.TransactionSynchronizationManager 이용해당 클래스를 이용하면 현재 트랜잭션 이름과 실행된 메소드가 트랜잭션에 참여중인지 여부를 확인할 수 있다. // 트랜잭션의 이름을 확인한다.// {패키지명까지 포함된 클래스이름}.{메서드이름} 으로 구성되어 있다.// ex: com.hello.user.loginTransactionSynchronizationManager.getCurrentTransactionName(); // 실행된 메소드가 트랜잭션에 참여 중인지를 확인한다.// boolean 반환 TransactionSynchronizationManager.isActualTransactionActive(); org.s.. 2023. 10. 11.
[JPA] 같은 엔티티를 조회함에도 불구하고 쿼리가 여러번 날아가는 이유 최근 사내 프로젝트 코드에서 단일 책임 원칙을 지키지 않는 메서드가 발견되어 이를 분리한 경험이 있는데요. 분리를 하게 되면서, 미처 신경쓰지 못한 부분 때문에 같은 엔티티를 조회함에도 불구하고, 조회 쿼리가 2번 날아가게된 삽질 경험이 있어 기록하고자 합니다. 해당 메서드는 금액을 변경하는 로직과 변경 후 금액을 조회하는 로직이 함께 섞여있었는데요. 이는 단일 책임 원칙을 지키지 않는 코드라고 판단되어, 변경 로직과 조회 로직을 아래와 같이 분리를 하였습니다. (로직은 매우 간소화 하였으니 참고 부탁드립니다.) public class MoneyService { private final UserMoneyRepository userMoneyRepository; public MoneyService(UserM.. 2023. 10. 7.
[인프콘 2023] 점진적 추상화 점진적 추상화 추상화 방향 if문 구현 타입이 늘어날수록 if문을 계속 추가해야 할텐데… 확장에 닫혀있는 코드가 되어버린다. (OCP 위반) 타입을 축으로 추상화를 할 수 있다. interface ← class 인터페이스 자체를 변경하는 것은 쉽지가 않다. 하위 구현체들이 모두 영향을 받음 타입을 축으로 vs 행위를 축으로 타입을 축으로 → 타입 확장에 유리 행위를 축으로 → 행위 확장에 유리 어느 방향으로 발전할지 알기는 쉽지 않다. 소프트웨어 발전 방향과 일치하지 않는 추상화는 오히려 더 유지보수하기 힘든 코드가 발생된다. 현실은 더 많은 축이 존재… 다른 방향으로 확장할 가능성이 큼 초기 추상화의 모습과 현실이 전혀 다른 방향으로… → 괴리 발생 요구사항에 비해 훨씬 복잡해짐 추상화를 했음에도 불구.. 2023. 8. 19.
[인프콘 2023] 주니어 시절 성장과 고민들 주니어 시절 성장과 고민들 영한쌤 이야기 JPA JPA를 사용하지 않는 이유 중에, 교육의 문제가 있다는 문제를 파악함 더 나은 환경에서 일을 하는 방법을 고민 → JPA 저서 출판 기본기 기술 학습의 어려움 실무에 꼭 필요한 내용이 있음 어려운 내용을 쉽고 단순하게 만들어서 설명 가치 삶의 가치를 고민 나만의 성장 vs 업계 모두의 성장 다음 세대의 개발자를 성장시키는 것을 선택 많은 강의를 준비하신다… 설렌당.. 성장 기본기 - 기술, 비즈니스 기술 성장을 위해 어떤 기술을 배워야 하는가? 현재 팀에서 사용하는 기술 최신 유행 기술 3종류의 개발자 기술 공부를 안하는 개발자 → 기술을 이해하고 사용하는게 아님 기술적인 근본 원인을 파악하기 어려움 깊은 이해 없이 업무 반복 새로운 기술을 도입할 때 주.. 2023. 8. 19.