본문 바로가기

분류 전체보기268

JSCODE 스터디 후기(자바 1기) JSCODE라는 채널을 구독하고 보고 있었고, 커뮤니티에 스터디를 모집한다는 글을 보게 됐다그리고 여러 과목들이 있었지만, 자바가 1기란 소식을 듣고 스터디를 신청했다 JSCODE 스터디 신청https://code-boki.tistory.com/192 JSCODE 스터디 신청Youtube - JSCODE종종 영상이 올라오면 즐겨보는 IT 유튜브 채널이다네이버, 채널톡 등의 회사에서 지인들에게 인터뷰를 하는 영상이 눈길이 갔고최근에는 인프런에서 비전공자나 취준생들을 위한code-boki.tistory.com그리고 총 5주간의 스터디를 진행했다(매주 금요일 오후 8~10시 + a)스터디 과정은 1주씩 개인블로그에 공부해서 올리고, 이 내용을 토대로 온라인으로 모의면접을 하는 방식이었다모르는 사람들과 화상으로.. 2024. 9. 17.
5주차 스터디 노트 JVM & GC  JVM 구조에 대해서 설명해 주세요. 클래스 로더에 대해 설명해 주세요. JVM 메모리 구조를 자세히 설명해 주세요. 왜 Heap 영역은 Young Generation과 Old Generation으로 나뉘나요? GC란 무엇인가요? GC의 장단점을 설명해 주세요. GC에서 사용하는 알고리즘은 무엇이 있고, Java는 어떤 알고리즘을 사용하나요? Java 8 기준으로, GC는 어떤 방식으로 수행되나요? GC의 종류 또는 발전 과정을 아시는대로 말씀해주세요. GC의 실행 방식을 아는만큼 설명해 주세요. Java 8과 Java 11의 디폴트 GC 실행 방식은 어떤 것인가요? G1 GC에 대해 설명해 주세요. G1 GC의 Heap 구.. 2024. 9. 12.
4주차 스터디 노트 동시성 프로그래밍동시성과 병렬성의 차이점을 말해주세요.Thread-Safe하다는 것이 무슨 의미인가요?가시성 문제와 원자성 문제에 대해 설명해 주세요.가시성 문제에 대해 조금 더 자세히 설명해 주세요. 여러 스레드가 모두 한 CPU의 캐시 메모리를 읽으면 가시성 문제가 발생하지 않을 것 같은데, 어떻게 생각하시나요?자바의 동시성 이슈를 해결하는 방법을 아는만큼 설명해 주세요.volatile 키워드가 무엇인가요?synchronized 키워드가 무엇인가요?synchronized의 문제점은 무엇이 있나요?synchronized는 어떻게 구현되어 있나요?atomic하다는 것이 무슨 의미인가요?atomic 키워드가 무엇인가요?CAS 알고리즘에 대해 설명해 주세요.Vector, Hashtable, Collectio.. 2024. 9. 5.
8/31 유스콘(YouthCon24) 참여 후기 일요일에 후기를 작성하고 싶었지만, 시골에 내려갔다 온다고 조금 늦은(?) 후기를 올려본다KTX를 타고 시골로 내려가면서 헥사고날(포트&어댑터)에 대해 다루고 있는 클린 아키텍처 책을 읽었다 목차유스콘 오프라인 참여자 선정유스콘이란?행사 일시와 장소명예 규율이벤트 스케쥴트랙1, 2 정보내 시간표행사장으로1부점심시간2부휴식 시간3부후기 유스콘 오프라인 참여자 선정유스콘이란?유스콘은 👨‍🎓 젊은 개발자와 👨‍🏫 선배 개발자가 함께 가치 있는 기술에 관한 정보와 경험을 공유하는 콘퍼런스입니다. 여기서 발표하는 사람들을 잘 기억해 주세요. 가까운 미래에는 DEVIEW, if(kakao), INFCON의 주인공이 될 개발자입니다. -- 벌써 햇수로는 5년차인(20,21,22,23,24) 유스콘 행사이다난 .. 2024. 9. 3.
8/27 캠프콘 참여 후기(feat. 토비의 스프링 책 판매자님과의 만남) 세션 1,2가 괜찮게 보였고 어차피 밖에서 공부중이었기 때문에 접속했다 세션 1 - 백엔드 기술 면접 합격 A to Z(카카오뱅크 김하은님)면접은 "같이 일하고 싶은 동료를 뽑는 것" == "함께 일할 팀원을 찾는 과정" 전체적으로 백엔드 개발 개요, 백엔드 개발자의 역할, 주요 기술 스택, 비기술적 역량, 면접, 일반적인 채용 과정, 면접의 핵심 요소, 면접 질문 예시3개Bad/Good답변, 면접 준비 전략을 끝으로 슬라이드 발표를 하셨고 이어서 Q&A 타임이 있었다 여러 의미있고, 들을만한 질문과 답변들이 있었고, 나도 질문을 1개 해봤다..ㅎㅎ너무 당연한 질문이라 그런가....ㅎ 하은님이 생각하는 적정한 테스트 커버리지의 수치에 대해서 들을 수 있었고, 뒤에는 당연히 모킹한다. 네. 라고 하셨다.... 2024. 9. 3.
볼트 X 커피챗 참여 후기(feat. 토스증권 서버 리드분과의 슈퍼커피챗) 행사 안내 문자 수신8/19일에 볼트X에서 행사 안내 문자를 수신받았다3개 기업이 참여하고, 테크리드분들을 만나뵙고 슈퍼커피챗 기회도 얻을 수 있다는 행사라고 한다관심이 있었기에 아래의 이벤터스 링크로 들어가서 신청했다행사 소개행사 신청이벤터스를 통해 행사를 신청했다항상 추첨 방식 또는 선착순으로만 행사를 참여했었는데 이번에는 이력서를 제출하고 3개 기업이 수락한 사람들 중에서 총 100명만 행사를 참여할 수 있었다또한 토스증권, 라포랩스, 스윙에서 제출된 이력서들을 미리 보고 관심가는 단 20명을 뽑아서 테크 리드와의 슈퍼커피챗 기회를 주는 선발형 이벤트도 있었다행사 3일 전까지만 해도 참가대기 상태였다가, 참가확정이 되었다. 확정이 되었다는 안내 메일 또한 받았다 토스증권 서버 리드분과의 슈퍼커피챗 .. 2024. 8. 30.
3주차 스터디 노트 컬렉션 JCF란 무엇인가요? JCF의 계층 구조를 설명해 주세요. List 인터페이스는 무엇이고, 구현체의 종류는 무엇이 있나요? ArrayList에 대해 설명해 주세요. ArrayList는 어떻게 동적으로 사이즈가 늘어나나요? LinkedList에 대해 설명해 주세요. 언제 ArrayList를 사용하고, 언제 LinkedList를 사용할까요?ArrayList와 Vector는 어떠한 차이가 있나요?Stack과 Queue가 무엇인가요?Set이 무엇이고, 구현 클래스가 무엇이 있는지 설명해 주세요.Set에서 중복 요소를 어떻게 걸러내는지 설명해 주세요.Map이 무엇이고, 구현 클래스가 무엇이 있는지 설명해 주세요.HashMap은 어떻게 동작하나요?HashMap의 최악의 시간 복잡도를 설명해 주세.. 2024. 8. 29.
자바에서의 다양한 문자열 포맷팅 방법(feat. MessageFormat) 복잡한 거 아니니깐 빠르게 알아보자!1. String 더하기단순하지만 강력한 방법이다다만.. 복잡시럽게 보일 수 있다는 단점 존재2. printfC언어를 배웠다면 익숙한 그 printf문법당연히 패딩넣기도 된다.다만 %p, %x등의 메모리 관련 포맷형식을 사용하면 UnknownFormatConversion 예외가 발생한다자바만의 특이점으로는 %h를 통해 메모리해시값을 얻을 수 있다. 슬프지만 당연하게도 Primitive type은 메모리주소를 알 수 없다3. String.format()printf와 비슷하게 형식을 지정할 수 있다그럼 차이점이 뭐야? 할 수 있는데, printf는 포맷팅 동시에 출력이 되는 방식이고, String.format은 반환형인 String으로 만들어서 재사용한다던지, 좀 더 가공.. 2024. 8. 29.
Mutable/Immutable Object의 Value를 계속 변경하면 무슨 일이 발생할까? (feat. VisualVM, GC) 이번 포스팅으로 Immutable 객체의 상태(값)을 반복해서 변경하면 무슨 일이 발생하는지 알아보자 관찰점: 힙 메모리가 어떻게 변하는지, 힙 메모리에 올라온 객체를 재사용하는지, GC가 몇 번 발생하는지Visual VMHeap 메모리를 관찰하는 Tool로 VisualVM을 사용할 것이다 이 프로그램은 몇몇 플러그인을 설치할 수 있는데, 나는 GC를 보기 위해 Visual GC 플러그인을 설치했다 예제 코드Immutable(Integer)실행결과를 예상해보자이전 포스팅 글들을 봤다면 Integer를 이런 식으로 더하다보면 새로운 힙 메모리가 할당된다고 예상할 수 있을 것이다x += 10; // 이 코드는 아래 코드로 변환되어서 실행x = Integer.valueOf(x.intValue() + 10); .. 2024. 8. 27.
서평-한빛미디어) 실무로 통하는 클린 코드 책 리뷰 서평단 선정2013년에 인사이트 출판사의 로버트 C. 마틴의 를 신입 개발자일때 혼자 봤던 경험이 있다그땐 이해가 가는 내용도 있고, 이게 무슨 말이지? 하는 것들도 있었다. 주로 후자였다하지만 지금은 조금 다른 시야를 갖고 있고, 2024년 8월 5일에 출간된 클린코드 책을 읽어보고 싶었다그래서 한빛미디어에 올라온 서평단에 신청을 하고, 선정됐다 책 수령표지의 동물은 회색물범이라고 한다대상 독자대상독자는 한빛네트워크 사이트에선 초중급이라고 평가해놨다책 내용을 읽어본 나도 초중급이라는 Range에 동의한다다만 초급이 봐도 좋고, 고급 수준인 개발자가 봐도 충분히 좋은 내용이었다최소 2회독정도 하며, 이 책에서 기억나는 것들을 현업 코드에 녹인다면 자신이 현재 어느수준이던간에 다음 레벨로 올라갈 수 있을 .. 2024. 8. 26.
자바에서 두 변수 값 바꾸기(Swap, Generic, Wrapper) 앞의 글들을 보고 왔다면 자바에서의 Call By Value때문에 특정 메서드 내에서 지지고 볶아도 값이 바뀌지 않는다는 것을 알 수 있을 것이다Call by Value with primitive type - 잘못된 사용- 실행결과두 값이 바뀔 수 있도록 해보자!! Custom Wrapper Class 사용(Call by Value with mutable reference type)임시로 값을 담을(Wrapping) 클래스를 정의하자잘 바꼈다!!근데 뭔가 좀 아쉽다.. 더 개선할 수 있는 부분이 없을까?? IntegerWrapper를 GenericWrapper로 변환자바의 Generic을 활용해 어떤것이든 담을 수 있게 해보자Generic으로 담았기 때문에 Integer, Long타입 둘 다 값이 바뀌는.. 2024. 8. 24.
Reference type(Mutable Object)의 Call By Value 살펴보기 2 이전 글에서는 Reference Type 인자로 전달될때 Call By Value의 동작에 관해서 JNI로 살펴보면서 Integer, AtomicInterger를 통해 객체 타입이 불변/가변으로 나뉠 수 있다는 것을 배웠다 이번 글에서는 Reference Type으로 전달 가능한 가변 객체에는 어떤 것들이 있는지 살펴본다 Call By Value와 가변 객체를 활용해서 객체를 넘기고 외부의 메서드에서 객체의 상태(값)을 변경하는 예시코드를 더 살펴보자 - Array- List- Map- Set - Custom Object(Custom Wrapper Class)이건 내부 구현 로직에 따라 가변or불변으로 구현할 수 있다. 여기서는 가변객체로 만들어본다 > 가변 Custom Object값이 변한 것을 볼 수.. 2024. 8. 23.
Chat GPT 좀 더 잘 사용하기 - 사건아는 동생이 Java공부하고 있는데 Call by Value에 대해서 물어봐서 일단 내가 아는 지식 정리하고 Chat한테 한번 물어봤다 근데 이놈이 Python 코드를 알려주는거다 그래서 이런경우는 보통 한 번 더 말한다 "Python말고 Java언어로 답해줘" 그러다가 영어로 답한다 "한글로 번역해줘 or 한글로 답해줘"- 개인화 옵션 설정뭔가 설정할게 없나 찾아보니까 Chatgpt 맞춤 설정이라는 메뉴가 있었다그리고 요청사항을 입력했다매우 정중하게 존댓말로 했다. 인공지능에 대한 예우랄까..?- 변경 전/후> berfore> after이야..이거지ㅋ 아직도 프롬프팅을 할때 개인화를 하지 않은 사용자가 있다면 이번에 사용해보자 기깔나게 말해주기때문에 인공지능한테 화낼 일이 줄어들었다 2024. 8. 23.
2주차 스터디 노트 문자열, 예외, 제네릭 String literal과 new String(””)의 차이를 설명해 주세요. String, StringBuilder, StringBuffer의 차이점에 대해서 설명해주세요. Exception과 Error의 차이는 무엇인가요? Exception 클래스의 예시를 말해주세요. Checked Exception과 Unchecked Exception의 차이는 무엇인가요? throw와 throws의 차이는 무엇인가요? try~catch~finally 구문에서 finally은 어떠한 역할을 하나요? Throwable과 Exception의 차이는 무엇인가요? 제네릭이란 무엇이고, 왜 사용할까요? 제네릭을 사용한 경험을 소개해 주세요.람다, 스트림, 어노테이션, 리플렉션 람다.. 2024. 8. 22.
Reference type의 Call By Value 살펴보기(feat. JNI, Immutable/Mutable) 저번 Primitive type글에 이어서 작성한다저번 글을 못봤다면, 여기 Java 카테고리에 있는 이전 글을 살펴보면 된다 이전 글의 서두를 옮겨와봤다최근에 다시 자바공부를 하다가 이런 면접 질문이 있는 것을 봤다Java는 Call by Value 일까요? 아님 Call by Reference 일까요?사실 이 질문 자체로는 틀린 질문이라 생각한다일단 맞는 질문으로 변환해보면Call by Value 와 Call by Reference 의 차이점에 대해서 말해주세요그럼, Java는 Call by Reference 방식을 지원할까요?라는 꼬리질문식 질의문이 되어야 맞는다고 생각한다   자, 그럼 왜 저런 질문을 하는걸까?일단 질문의 의도는 2가지이다1. 헷갈리게 만들기2. Java의 기본 동작과정을 잘 이.. 2024. 8. 21.
Primitive type의 Call By Value 살펴보기(feat. JNI) 최근에 다시 자바공부를 하다가 이런 면접 질문이 있는 것을 봤다 Java는 Call by Value 일까요? 아님 Call by Reference 일까요?사실 이 질문 자체로는 틀린 질문이라 생각한다일단 맞는 질문으로 변환해보면Call by Value 와 Call by Reference 의 차이점에 대해서 말해주세요그럼, Java는 Call by Reference 방식을 지원할까요?라는 꼬리질문식 질의문이 되어야 맞는다고 생각한다 다른 글에서 쓴 내용이긴 하지만 영어 자체를 하나하나 짤라서 해석해보자 Call 이란 무엇일까?내가 vba다음으로 배운 언어인.. C언어를 예로 들어본다C언어를 배울때 나오는 것은 함수의 선언/호출/정의부 용어가 나온다영어로는 Declaration/Call/Definition라.. 2024. 8. 20.
DEVOCEAN 제6회 테크 데이 (OpenLab 성장 스토리) 행사 참여 후기 평일에 열리는 행사였지만... 난 참여가 가능했기 때문에!! 데보션 페이지를 통해서 행사를 신청했다  세션 소개일단 나는 코틀린, kubeflow, Rust 3 주제가 흥미로웠다추가로.. 난 LLM밖에 몰랐었는데, 여기에서 내가 모르는 RAG라는 용어가 보이길래 검색해봤다LLM 단점을 보완하는 기술이라고 나온다 프로젝트 데모 부스세션 소개에서 스케쥴을 살펴보면 이 프로젝트 데모 부스에서 볼 수 있는 프로젝트들을 설명하는 세션도 포함되어있다 발표자  SKT 타워엘리베이터를 타고 행사가 열리는 4층으로 향했다 행사장QRCode를 사진으로 포커싱하고 링크를 들어갔더니...옹.. 데보션 테크데이 배지를 얻었다!! 입구에는 간단한 다과들과 냉커피 + 데보션 스티커가 준비되어 있었다입구에서 KSUG 임원이면서, 데.. 2024. 8. 19.
새로운 버전이 나오면..? 무언가를 도입하려고 할때 (feat. maturity level) 최근에 면접을 기반으로 한 스터디를 하고 있어서 이 글을 작성하고 싶었다취준생이나 이직하려는 사람들이 단순히 면접을 통과하기 위해 질문을 외우고 있는 모습을 봤다 사용해본 Java 버전과 특징 그리고 왜 그 버전을 사용했는지 설명해주세요.Java 8, 11, 17 버전에 대해 아는대로 설명해주세요.그럼 하나의 질문을 던져볼 수 있을 것 같다Q. 새로운 자바 버전이 나오면 바로 사용해도 되는걸까?(Java 21) 그 질문에 답은 이 사진으로 대체하려고 한다Virtual Thread에 대해서 23년 12월에 카카오에서 발표한 영상의 일부 사진이다 아무리 LTS를 해주는 새로운 버전이 나왔다고 하더라도 실제로 상용화 또는 출시를 하려는 소프트웨어에 적용하기에는 수많은 과정을 거쳐야 한다2023년 9월에 출시된.. 2024. 8. 18.
혼공학습단 12기 활동회고록 - [혼공네트] 혼공학습단 선정6월 5일 올라온 혼공단 모집에 신청을 했고, 운좋게 6월 26일에 혼공학습단 12기로 선정이 됐다나는 혼공네트 책을 선택했다 기간은 7월 1일부터 8월 18일까지 꽤 긴 기간...!!!! 퇴사사실 따로 글을 작성하려고 했었는데 여기다가 말해버려야지..2024년 6월 3일에 1년 4개월정도 다닌 회사를 퇴사했다 일단 올해 3월에 18년동안 같이 우리 집에서 살아온 반려견 강아지가 무지개 다리를 건넜다2군데 정도 퍼진 암으로 인해 눈만 뜨면 고통스러워했었다 2023년에 폐암 말기 판정을 받으신 아버지도 집에서 쉬시면서 일산에 있는 국립암센터로 항암치료를 받으러 다니셔야 했었다나 또한 회사에서 스트레스와 불규칙한 수면, 식습관때문에 2023년에 비해서 15kg정도가 증가했었기때문에 건강이 심히.. 2024. 8. 18.
혼공네트 6주차 - 실습, 네트워크 심화(Wireshark 패킷/프로토콜 분석, 다중화, 로드밸런싱, 암호화, 무선 네트워크) 시작하기 전에..내가 직접 씀) 이번 주차에서 나올 Wireshark를 통한 패킷 분석은 개인적으로 집에서만 실시하자공공장소 또는 회사내에서 패킷 분석을 하는것은 불법이라고 알고 있다 독서 & 스터디드디어 마지막주 혼공네트 스터디이다!!책의 챕터로는 6~7 챕터, 총 2개 챕터를 다룬다 6-1 와이어샤크 설치 및 사용법와이어샤크 설치맥OShttps://www.wireshark.org/download.html Wireshark · DownloadWireshark: The world's most popular network protocol analyzerwww.wireshark.org나는 macOS의 Arm 아키텍처 버전을 사용하고 있기때문에 macOS Arm Disk Image로 다운받았다 맨 위에 있는 .. 2024. 8. 17.