본문 바로가기
반응형

전체 글341

[책 후기] 내 코드가 그렇게 이상한가요? 저자: 센바 다이야 출판사: 인사이트 책 링크: https://product.kyobobook.co.kr/detail/S000202521361 1. 읽게 된 계기 친구들과 하는, 주에 한 번씩 모이는 스터디가 있다. 독서를 할 때도 있고 처음 보는 기술을 맛보기 할 때도 있는데, 저번에는 '내 코드가 그렇게 이상한가요?'를 읽기로 했다. 책 제목부터 모두의 호기심을 잡아끌어서 만장일치로 책이 결정되었다. 내 코드가 이상한 이유는 뭘까? 본 글에서는 책을 읽으면서 이야기했던 내용들이나 인상 깊었던 내용들 위주로 정리해보고자 한다. 2. 책을 읽고 책을 읽고 요약한 것은 깃허브에 메모해두었다. 이 책은 굉장히 친절하다. 다른 책에서는 이론적인 개념과 코드를 보여주는데 그친다면, 이 책에서는 어떠한 개념에 대.. 2023. 9. 9.
[인프콘 후기] 2023 INFCON 1. 인프콘에 참가하다 🙂 어떻게 참가할 수 있었는가 때는 2023년 7월 18일 12시 48분. 인프콘 추첨 결과 공개까지 12분이 남은 시간이었다. 인프콘에서 누구보다 빠르게 추첨 결과 메일이 왔다. 설레는 마음을 가득 안고 메일을 열어보았으나, 낙첨이었다. 메일을 보며 현실 부정을 하고 있자 친절하게도 카카오톡을 통해서 낙첨 사실을 재확인 시켜주었다. 😭 트위터에 슬퍼하는 글을 남기자 준프님께서 개인 초대권을 주셨다. 준프님은 작년 인프콘 때 처음 만나뵙고 인연을 이어가고 있었는데 이렇게 도움을 받게 되어 너무 감사하고 행복했다. 🥹 정말 감사합니다ㅠㅠ) 아무튼 이렇게 인프콘에 무사히 참가할 수 있게 되었다. 🧐 작년과 달라진 것들 작년에는 그냥 같이 당첨된 친구들과 함께 돌아다니고는 했는데, 올해.. 2023. 8. 16.
[Git] 머지 커밋 revert 하기 🤔 git revert란? git revert란 일부 기존의 커밋들을 되돌리는 작업이다. git reset과는 다른 것이, git reset은 기존의 커밋을 아예 삭제해버린다. 하지만 git revert는 변경 사항을 되돌린 커밋을 하나 새로 생성한다. 예를 들어 아래와 같은 커밋 A, B, C가 있다고 가정해보자. (알파벳은 커밋을 구분하기 위해 임의로 붙인 이름이다.) 이 때 커밋 C의 변경 내역을 reset, revert를 통해 되돌린다면 어떻게 될까? 커밋 내역을 살펴보면 git reset은 커밋 C에 대한 기록이 아예 없어진다. git revert는 새로운 커밋 X가 생긴다. 커밋 X의 변경 내역을 살펴보면, 커밋 C에서 변경했던 코드들이 그 이전 상태로 돌아가있다. git reset을 사용하는.. 2023. 8. 13.
[Spring Batch] 개념부터 코드까지 목차 1. Spring Batch란? 2. Spring Batch 구조 3. 기본적인 세팅 4. Job, Step 5. ItemReader, ItemProcessor, ItemWriter 1. Spring Batch란? 배치란 언제, 왜 쓰는걸까? 비즈니스 로직을 작성하다 보면 대량 처리(bulk processing)가 필요한 경우가 많다. 이런 대량 처리가 반복적으로 일어나야 하는 경우, 배치 애플리케이션을 생성 및 실행하여 처리할 수 있다. 그 중에서도 Spring Batch는 엔터프라이즈 시스템에서 일상적인 운영에 필요한 배치 애플리케이션을 개발할 수 있도록 설계된 배치 프레임워크이다. 여기서 주의할 점은 배치는 대량의 데이터를 일괄적으로 처리할 뿐, 특정 주기마다 자동으로 돌아가는 스케줄링과는 .. 2023. 7. 21.
입사 6개월차 신입의 회고 올해 1월, 정말 운이 좋게도 원하던 회사에 입사하게 되었습니다. (자세한 취준 일기가 궁금하신 분들은 요 링크로!) 그리고 오늘은 수습 해제를 기념으로 입사 6개월 차가 된 신입 개발자의 회고를 자문자답 형식으로 작성해보려고 합니다. 입사 직후에는 어떠셨나요? 정말 정신없었습니다. Jira, Wiki 등 업무를 위해 꼭 사용해야 하는 툴이나 회사의 출퇴근 시스템, 업무 처리 방식 등 처음 보는 것들이 너무 많았어요. 회사에서 온보딩 시스템을 굉장히 잘 구축해 뒀고 가이드도 정말 잘 되어있었지만, 그와는 별개로 수많은 정보가 쓰나미처럼 밀려들어와서 모든 걸 한 번에 받아들이기는 벅찼습니다. 그래도 입사 동기 분들이 많았던 덕에 서로 편하게 물어볼 수 있어서 정말 좋았습니다. 신입이라 당장 업무가 주어지지.. 2023. 7. 15.
[Java] UnaryOperator란? 📚 UnaryOperator란? : Java에서 제공하는 함수형 인터페이스 인수(argument)와 반환 결과(return)가 동일한 타입을 가진 경우에 사용하는 특수한 Function Java 8 부터 사용 가능 함수형 인터페이스란? * = SAM Interface = Single Abstract Method Interface * 1개의 추상 메서드를 가진 인터페이스 * UnaryOperator 외에도 Predicate, Consumer, Function 등이 있다. UnaryOperator의 코드를 살펴보면 Function를 상속받고 있는 것을 볼 수 있다. 제네릭 부분을 살펴보면 인수와 반환 결과 모두 동일한 타입으로 취급하는 것을 볼 수 있다. @FunctionalInterface public .. 2023. 6. 26.
[DB] 'is not NULL'과 '!= NULL'은 다르다? 팀원분이 비슷해 보이는 두 쿼리문를 보내시며 둘의 결과가 서로 다르다고 보내주셨다. 두 쿼리의 차이점은 오직 NULL 체크를 is not NULL로 하냐, != NULL로 하냐의 차이였다. 쉬운 이해를 위해 사용자를 조회하는 쿼리가 있다고 가정해보겠다. -- 1: is not NULL 사용 (10 Results) select * from member where age is not NULL limit 1; -- 2: != NULL 사용 (0 Results) select * from member where age != NULL limit 1; is not NULL에서는 조회 결과가 있지만, != NULL에서는 조회 결과가 없었다. 왜 그럴까? SQL에서는 NULL 값을 =, 같은 비교 연산자를 이용해 비교할.. 2023. 6. 7.
[Spring] 스프링 캐시 간단하게 사용해보기 목차 1. 스프링의 캐싱 방법 2. 사전 준비 3. 예제 코드 1. 스프링의 캐싱 방법 캐싱 자주 사용하는 데이터를 어딘가 임시로 저장하고, 빠르게 꺼내 쓰기 위해 사용할 수 있게 하는 프로세스 서버의 부담을 줄여 성능을 높이기 위해 사용하기도 함 ex: DB에서 조회하는게 굉장히 오래 걸리는 데이터를 캐싱해두면, 다음에 조회할 때 DB의 조회 결과를 기다리지 않고 캐싱 영역에서 빠르게 가져다 쓸 수 있음 스프링의 캐싱 @Cacheable, @CacheEvict 같은 어노테이션을 통해 AOP 기반으로 동작 이를 위해서는 @EnableCaching 설정이 필수 2. 사전 준비 이 글에서는 Redis를 이용해 예제 코드를 작성하기 때문에 사전 준비가 필요하다. 별도의 Redis를 사용하지 않는 경우에는 생략.. 2023. 5. 31.
[Backspace 후기] 글또 반상회를 다녀오고 5월 19일, 글또에서 'Backspace'라는 이름으로 반상회가 열렸다. 작년에도 이와 비슷하게 글또콘이라는 행사가 열렸었는데 (글또콘 후기 바로가기) 올해는 인원이 더 많아져서 그런가 분야별로 나눠서 '반상회'의 형태로 행사가 열렸다. 이번 반상회에서는 백엔드/인프라 분야 분들이 모였다. 😎 참가 사유 나의 참가 이유는 단순했다. 사람들이랑 이야기 좀 하고 싶어서. 😂 낯을 많이 가리고 내성적인 나이지만... 항상 재택을 하다보니 사람들이랑 대화할 시간이 많이 부족하다고 느꼈다. 회의가 있을 때 말을 하긴 하지만 모니터에 대고 말하는 거랑 사람이랑 직접 마주 보고 말하는 건 느낌이 많이 다른 것 같다. 그래서 목표를 달성했느냐 여쭤보신다면, 달성했다! 취준생 시절 때 함께 팀프로젝트를 진행했던 친구.. 2023. 5. 20.
반응형