반응형 전체 글34 코드스테이츠 소프트웨어 엔지니어링 39기 수료 후기 참고: 블로그를 이전하여 2022년 10월에 작성한 글을 옮김 시작하기 전에코드스테이츠에서 주관하는 부트캠프 중 소프트웨어 엔지니어링 백엔드 코스에 참여 후 작성하는 후기입니다.39기로 참여하였으며, 기존에 node.js로 풀스택 과정을 운영하던 코드스테이츠에서 처음으로 백엔드와 프론트엔드로 분야를 나누고 국비 교육으로 진행한 과정에 참여하였습니다.즉, Java와 Spring/Spring Boot로 교육 진행한 첫 기수라는 점 참고해 주시면 되겠습니다.참여 기간은 2022.04.25 ~ 2022.10.19이며, 약 6개월 정도입니다. 결론적으로 말하면, 코드스테이츠를 칭찬하고 싶지 않고 그렇다고 비판하고 싶지도 않습니다. 하면서 느꼈던 것들을 사실 그대로 적어보겠습니다. 같은 맥락으로 추천, 비추천 .. 2024. 9. 22. 모두의연구소 아이펠(AIFFEL) SSAC 2기 수료 후기 참고: 블로그를 이전하여 2022년 4월에 작성한 글을 옮김 더 늦기 전에 aiffel 수료 후기를 작성해보려 한다. 아이펠이란?aiffel은 모두의 연구소에서 주관하는 AI 혁신 학교(AI 교육)이다. 강남, 양재, 대전, 울산 등 여러 캠퍼스가 있으며, 나는 그중 SBA(서울산업진흥원) SeSAC 캠퍼스에 참여하였다. 다른 캠퍼스의 경우 내일 배움 카드를 통해 교육을 듣는 것으로 알고 있으나, 내가 참여한 새싹 캠퍼스의 경우 내일배움카드 발급 없이 신청이 가능했다. 교육은 2021.09.06 ~ 2022.03.11까지 총 6개월간 진행되었다. aiffel과 SeSAC에 대해서는 하기 링크를 참고하면 좋을 것 같다. (교육 중간에 ssac에서 sesac으로 명칭이 변경되었다) AIFFEL.. 2024. 9. 22. 이펙티브 자바 - 아이템 8. finalizer와 cleaner 사용을 피하라 이펙티브 자바(Effective java)를 읽고 정리한 글입니다. 자바는 finalizer, cleaner 두 가지 객체 소멸자를 제공한다. finalizer는 기본적으로 사용하지 않아야 한다. 예측할 수 없고, 오동작 및 낮은 성능 등의 원인이 되기도 한다. finalizer 대안으로 등장한 cleaner는 상대적으로 덜 위험하다. 하지만 동일하게 예측할 수 없고, 불필요하다. 왜 사용하면 안 될까1. finalizer와 cleaner는 즉시 수행된다는 보장이 없다. 즉, 이들을 이용하여 제 때 실행되어야 하는 작업은 수행할 수 없다. finalizer와 cleaner의 수행 시점은 가비지 컬렉터 알고리즘에 달려 있다. finalizer를 달아두면 인스턴스 자원 회수가 지연될 수 있다. final.. 2024. 9. 4. 이펙티브 자바 - 아이템 7. 다 쓴 객체 참조를 해제하라 이펙티브 자바(Effective java)를 읽고 정리한 글입니다. 가비지 컬렉터를 가진 Java를 사용하더라도 메모리 관리에 신경 쓰지 않아도 되는 것은 아니다. 메모리 누수와 참조 해제 가비지 컬렉션 언어에서는 메모리 누수를 찾기 매우 까다롭다 (의도치 않게 객체를 살려두는 경우). 객체 참조 하나를 살려두면 그 객체가 참조하는 모든 객체를 회수하지 못한다. 이는 잠재적으로 성능에 악영향을 줄 수 있다. 우리는 이 문제는 참조를 다쓴 객체를 null 처리하여 해결할 수 있다.즉, 참조 해제를 통해 가능하다. null 처리를 해두면, 실수로 해당 객체를 참조하려 할 때 NPE 가 발생한다.이를 통해 오류를 조기에 발견할 수 있다.하지만 모든 경우에 null 처리할 필요는 없다. 객체 참조를 null.. 2024. 9. 4. 2022년 하반기 가비아 백엔드 개발 인턴 지원 후기 참고로 블로그를 이전하여 2022년 12월에 작성한 글을 옮겨왔다.개요가비아 2022년 하반기 백엔드 개발 인턴에 지원했다.여러가지로 많이 부족한 상태라 "코딩테스트라도 경험해보자!" 라는 생각으로 지원하게 되었다.서류 작성부터 면접까지 좋은 경험을 했다고 생각해서 기록해본다.참고로 개발자로써 본 첫 면접이었다. 채용 절차서류 전형코딩테스트인적성(면접 참고용)실무진 면접 (임원 면접은 인턴 활동 후에 진행)서류 전형Q. 사회 활동 경험 이력채용 플랫폼에 기본적으로 기입한 사항들에 대한 설명을 작성하였다.각 카테고리(교육, 직장경력, 봉사, 동아리 등) 별로 나눠서 작성하였다. Q. 백엔드 개발 역량 향상을 위해 어떤 노력, 준비를 했고 가장 중요시하는 부분이 무엇인지와 그 이유를 서술해 주세요.총 3가지.. 2024. 8. 20. 이펙티브 자바 - 아이템 6. 불필요한 객체 생성을 피하라 이펙티브 자바(Effective java) 를 읽고 정리한 글입니다. 같은 기능의 객체를 매번 생성하는 것 보다, 하나의 객체를 재사용하는 것이 좋다. 불필요한 객체 생성 피하기1. 정적 팩터리 메서드를 제공하는 불변 클래스에서는 불필요한 객체 생성을 피할 수 있다. 2. 생성 비용이 비싼 객체는 캐싱하여 재사용할 수 있다. 예를 들어 정규표현식용 Pattern 은 입력받은 정규표현식에 해당하는 유한 상태 머신을 만들어서 인스턴스 생성 비용이 높다. 성능을 고려해서 Pattern 인스턴스를 클래스 초기화 과정에서 직접 캐싱해둘 수 있다. 3. 오토박싱(auto boxing) 과정에서도 불필요한 객체가 생성될 수 있다. 오토박싱은 원시 타입과 박싱 타입의 구분을 흐려주지만, 완전히 없애주는 것은 아.. 2024. 8. 20. 이펙티브 자바 - 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 이펙티브 자바(Effective java) 를 읽고정리한 글입니다. 많은 클래스가 하나 이상의 자원에 의존한다. 이 때, 사용하는 자원에 따라 다르게 동작해야 하는 클래스에는 정적 유틸리티 클래스나 싱글턴 방식이 적합하지 않다.또한 이들은 잘못 사용하면 유연하지 않고 테스트하기 어렵다. 이러한 클래스는 여러 자원 인스턴스를 지원하고, 클라이언트가 원하는 자원을 사용해야 한다. 우리는 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 방식을 이용해 이를 만족시킬 수 있다. 의존 객체 주입 패턴 장점public class SpellChecker { private final Lexicon dictionary; public SpellChecker(Lexicon dictionary) { .. 2024. 8. 20. 이펙티브 자바 - 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 이펙티브 자바(Effective java) 를 읽고 정리한 글입니다. 정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어서 쓰려고 설계하는 것이 아니다.그렇기 때문에 인스턴스화가 불가하도록 막아야 한다. 인스턴스화 방지 컴파일러는 자동으로 기본 생성자를 만든다. 우리는 유틸리티 클래스가 의도치 않게 인스턴스화가 가능하도록 두지 말아야 한다.그러니 prvate 생성자를 추가하여 클래스의 인스턴스화를 막자. public class UtilityClass { private UtilityClass() { throw new AssertionError (); } // ... } 위와 같이 생성자 내부에서 Error 를 던지도록 하면, 클래스 내부에서 실수로 생성자를 호출하는 일.. 2024. 8. 17. 데이터 처리 - 코랩으로 네이버 지역 검색 API 이용하기 개요보리 프로젝트를 하면서 판매점 주소 데이터가 필요하여, 네이버 지역 검색 API를 이용해 주소 정보를 수집하였다. 로컬 환경에서 수행하지는 않았고, Google Colab을 이용하여 간단하게 Python 으로 처리하였다. 이제 방법을 알아보자. 개발 환경Google ColabPython 3.10.12 사전 지식구글 코랩, 주피터 노트북 사용 방법을 알고 있다.네이버에서 제공해주는 지역검색 API 문서 숙지: https://developers.naver.com/docs/serviceapi/search/local/local.md 흐름네이버 개발자센터에 애플리케이션을 등록한다.코랩에서 네이버 지역 검색 API를 활용해 정보를 가져온다. 애플리케이션 등록하기먼저 네이버 개발자 센터에 들어간다. 주소: htt.. 2024. 8. 17. 이펙티브 자바 - 아이템3. private 생성자나 열거 타입으로 싱글턴임을 보증하라. 이펙티브 자바(Effective java) 를 읽고 정리한 글입니다. 싱글턴(singleton): 인스턴스를 오직 하나만 생성할 수 있는 클래스. 예시) 함수 같은 무상태(stateless) 객체나 유일해야 하는 컴포넌트 그럼 싱글턴을 만드는 방식에 대해 알아보자. 싱글턴을 만드는 일방적인 방식 생성자는 private으로 감추고, public static 멤버 하나로 인스턴스에 접근할 수 있게 한다.→ 클래스가 싱글턴임이 API에 명백히 드러나는 장점이 있다.정적 팩터리 메서드를 public static 멤버로 공개한다.→ API를 바꾸지 않고도 싱글턴이 아니게 변경할 수 있다는 장점이 있다.→ 원한다면 정적 팩터리를 제네릭 싱글턴 팩터리로 만들 수 있다는 장점이 있다.→ 정적 팩터리의 메서드 참조를.. 2024. 8. 14. 이전 1 2 3 4 다음 반응형