본문 바로가기

전체 글31

JDK 버전 바꾸기 (Apple Silicon Mac) feat. chatGPT M1 맥을 사용하고 난 후에, 터미널 자바 버전을 바꿀 일이 생겼다. 작년에 자바 버전 바꾸는 방법을 블로그에 정리한 기억이 있어서 찾아보고 그대로 따라했는데, 그 때 당시에는 인텔 맥에 맞춰진 버전 변경 방법이어서 그런지 적용이 되지 않았다. 댓글에서도 M1 환경에서는 자바 버전을 바꾸는 방법이 다르다는 글이 있어서, 글을 하나 더 작성하게 되었다. 특히 이번에는 최근 가장 뜨거운 감자라고 할 수 있는 ChatGPT를 사용하여 이 주제로 질문을 만들어 보내보았다. 영어로 질문해야 좀 더 정확한 답변이 나온다고 들어서 부족한 영어 실력이지만 알아서 알아듣겠지 하고 질문을 해보았다. 너무 깔끔하게 답변이 나왔고, 실제로 그대로 수행하니 자바 버전이 바뀌었다. 답변이 항상 정확하다는 가정 하에 직접 검색보다.. 2023. 2. 1.
[인턴십 후기] Works Mobile 2022 하계 채용 연계형 인턴십을 마치고 개발자로서 첫 사회 경험이었던 8주 간의 Works Mobile 인턴십을 마쳤다. 판교 개발자의 삶을 조금이나마 맛볼 수 있었던 특별한 경험이었다. 테크원타워 쵝오! 8주라는 시간이 순식간으로 느껴졌다. 길다면 길고 짧다면 짧은 시간 동안 새롭게 배운 것들도 많고, 스스로 느낀 것들도 많아 글로 정리하면서 돌아보는 시간을 가지려 한다. 비밀유지 서약을 했으니, 인턴 과제에 대한 세부적인 설명은 뒤로하고 신기했던 일들, 순간순간 느꼈던 기분, 어떤 점들에서 내가 부족함을 느꼈고, 어떻게 극복했으며, 앞으로는 어떻게 나아가야 할지에 대해 중심을 맞춰 글을 쓰겠다. 첫 출근날 처음 출근했을 때 기분이 아직도 생생하다. 출근을 정해진 시간보다 20분 먼저 했지만, 마치 죄지은 사람처럼 안절부절 못하면서 식은땀도.. 2022. 9. 15.
2022 네이버웍스(웍스모바일) 채용연계형 하계 인턴 합격 후기 정말 운이 좋게 웍스모바일에 합격하였다. 사실 좀 얼떨떨했다. (왜 합격이지?) 면접에서 스스로 만족할만한 답변을 많이 하지 못했다. 카카오 면접 때와 또 다른 유형의 면접 과정이었는데, 하나의 프로젝트를 집요하게 파서 질문을 받았던 것이 그것이다. 스스로 진행한 프로젝트임에도 세세히 알지 못했다고 느껴졌고, 성능 개선을 위한 노력도 턱없이 부족하다고 느껴지는 인터뷰 과정이었다. 그래도 기본적인 CS 질문에는 잘 대답한 편이었고, 단지 이런 성능 개선 부분이나 실제 배포 운영 경험이 없다는 점이 스스로 큰 결점이라고 생각했는데, 관련 질문이 들어왔을 때 바로 "모르겠습니다"라고 답하기 보다 충분히 고민하고 "만약에 제가 그런 상황이라면~" 하면서 내가 아는 선까지 최대한 말씀드리려는 모습을 좋게 봐주신 .. 2022. 7. 15.
2022 Naver 기술 직군 신입 채용 인턴십 지원 후기 [진행 상황] 서류: 합 1차 인터뷰: 완료 2차 인터뷰: 웍스 모바일 인턴십 일정과 겹쳐 포기 스펙 간단 요약 컴퓨터공학 전공자, 2023년 2월 졸업예정 학점 4.1/4.5 지원서에 작성한 팀프로젝트 경험 두 개 (면접에서 추가로 진행한 프로젝트 어필) 자격증 없음, 이력 없음 + 추가 포트폴리오 제출란에 포트폴리오 제출 했음. (더 자세한 내용의 프로젝트 설명, 교내 수상 내역, 활동 내역 등) 서류 지원 과정 요약 지원서(이력서) + 코딩 테스트 + 인적성 검사로 평가되었다. 네이버는 지원서를 넣을 때 특정 직군(?)을 선택해서 지원하는 것이 특이했다. 천천히 모든 직군의 소개글들을 읽어보면서 내가 만족하는 지원자격과 우대조건들을 잘 비교해보았고, 결론적으로는 당연한 말이지만 내가 가장 잘 맞을 .. 2022. 7. 15.
[스프링과 객체지향 3편] DI, IoC, 스프링 컨테이너 이전 편에서 객체지향설계 5원칙에 대해 다루었다. 다형성만을 사용해서 OCP와 DIP를 지키기 어렵다는 것도 설명하였다. 이번 편에서는 OCP와 DIP를 지키기 위해 DI, IoC에 대해 알아보고, 나아가 DI 컨테이너, 스프링 컨테이너에 대해 알아볼 것이다. DI (Dependency Injection), 의존관계 주입 애플리케이션 실행 시점에 외부에서 실제 구현 객체를 생성하고 전달하여 클라이언트와 서버의 실제 의존관계가 연결되는 것을 의존관계 주입(DI)이라고 한다. 의존관계는 두 가지로 분리해서 생각해야 한다. - 정적인 클래스 의존관계 - 동적인 객체 의존관계 정적 의존관계는 애플리케이션을 실행하지 않아도 코드를 통해 알 수 있는 의존관계이다. (import 패키지로만 알 수 있는 부분) 정적 .. 2022. 7. 4.
[스프링과 객체지향 2편] 객체지향 설계의 5가지 원칙(SOLID) 좋은 객체지향 설계를 위해 따르는 5원칙을 SOLID라고 한다. SRP, OCP, LSP, ISP, DIP의 앞 글자를 따서 얻어진 이름이다. 이 다섯 가지의 원칙을 지키면, 확장과 변경에 유연하고 유지보수가 쉬운 소프트웨어를 개발할 수 있다. SOLID와 Spring이 무슨 상관이냐고 물을 수 있다. 결론부터 말하면, SOLID를 지켜서 코드를 작성하면 유지보수가 쉬운 것은 사실이지만, 작성해야 할 코드량이 굉장히 많아져서 때로는 배보다 배꼽이 큰 상황이 생길 수 있다. Spring Framework는 이런 상황을 해결해주기 위한 다양한 기능을 제공해준다. 하나의 예시로, 스프링 프레임워크의 의존관계 자동 주입 기능은 OCP와 DIP를 지키기 위해 사용하는 Config Class의 코드량을 엄청나게 줄.. 2022. 7. 3.