본문 바로가기

전체 글112

[책 리뷰] 이것이 취업을 위한 백엔드 개발이다 with 자바 리뷰 최근에 지인분의 소개로 받은 책이 있습니다. 기술면접관으로 활동하며 주니어 개발자들에게 멘토링을 진행하는 저자 이준형님이 그동안 진행한 멘토링과 컨설팅의 내용을 담아 책으로 출판했다고 하여 기대를 가지고 읽어본 책이었고, 실제로 제 멘티들에게도 추천할 만한 책이라고 보여 간단한 리뷰를 남깁니다. https://product.kyobobook.co.kr/detail/S000211834105 이것이 취업을 위한 백엔드 개발이다 with 자바 | 이준형 - 교보문고 이것이 취업을 위한 백엔드 개발이다 with 자바 | 백엔드 개발자 취업, 무엇을 어떻게 준비할까? 생생한 과제테스트 경험을 바탕으로 백엔드 개발자 취업의 모든 것을 배운다!백엔드 개발자를 꿈 product.kyobobook.co.kr 추천대상 하.. 2024. 3. 24.
[Java] 많이 헷갈려하는 String constant pool과 Runtime Constant pool, Class file constant pool String Constant Pool과 Constant Pool 이 두 가지는 완전히 다른 개념입니다. 용어가 비슷한 형태이기 때문에 이 두 가지를 혼용하여 헷갈리는 경우가 많습니다만, 저장되는 위치부터 저장하는 데이터의 종류, 관리 주체까지 모든 것이 다른 저장공간입니다. 심지어 Constant pool은 JVM - Metaspace영역의 Constant pool과 컴파일된 class파일의 Constant pool이 다릅니다. 헷갈리지 않도록 살펴봅시다. String Constant Pool Java에서 문자열 리터럴을 저장하는 독립된 영역을 `String Constant Pool` 또는 `String Pool`이라고 부릅니다. JVM - Perm/Metaspace 영역에 존재하고 일반적으로 GC 대상.. 2023. 5. 19.
직접 쿠버네티스 클러스터를 구성해보자 With NCP 쿠버네티스 기반 서비스를 구성하기 위해서 AWS, GCP, NCP 등의 플랫폼을 사용할 때에는 두 가지 선택지가 있습니다. 1. 클라우드에서 제공해주는 쿠버네티스 서비스 이용하기 2. 직접 머신을 발급받아 쿠버네티스 구성하기 대부분의 상황에서는 클라우드 서비스에서 구성해주는 쿠버네티스 서비스를 이용하는 편이 손쉽고 간편하게 관리받을 수 있습니다. 하지만 쿠버네티스를 학습하고 있고, 어떻게 클러스터를 구성해야 할지 직접 핸즈온을 해보고 싶다면 2번 방법을 통해 간접적으로 간단하게 쿠버네티스 클러스터를 구성해볼 수 있습니다. 방화벽 포트 열기 쿠버네티스 설치를 위해서는 필수로 열려있어야 하는 포트가 있습니다. 공통 TCP 22번 포트를 열어주셔야 합니다. [SSH를 하기 위함] 마스터 노드 TCP Inbou.. 2021. 11. 17.
Kubernetes CKA 합격 후기 [2021-10-20] 작년 쿠버네티스를 도입하며 '이왕 공부하는 거 자격증이라도 따 보자!'라고 공부하던 CKA 자격증을 1년이 지난 이제야 응시하였고 취득하였습니다. CKA자격증은 외워서 따는 자격증이 아닌, 정말 쿠버네티스의 개념을 알고 있는지와 검색을 통해 문제를 해결할 수 있는지 검증하는 자격증이기 때문에 쿠버네티스를 공부할 예정이라면 CKA취득을 목표로 공부하는 걸 추천드립니다. 실제로 쿠버네티스 클러스터를 운영할 때에도 큰 도움이 되었으며 공부했으면 뭐라도 남는 게 있어야지(?)라고 생각하는 저에게 자격증은 공부할 수 있는 동력이 되었습니다 :) 시험 응시 방법 CKA자격증은 CNCF에서 발급해주며, 신청은 Linux Foundation에서 가능합니다. 시험은 2021년 기준 375$로 만만치 않은 가격이지만 상시.. 2021. 10. 21.
40주간 진행한 사이트 프로젝트 후기 MANNALGA 코드 오픈 안녕하세요 에릭입니다. 오늘은 8개월간 진행한 사이드 프로젝트를 여러분께 소개하러 왔습니다! MANNALGA는 사람들과 모임을 밀접하게 연결해주는 서비스입니다. 이 프로젝트는 학습을 목표로 제작한 프로젝트입니다.그만큼 학습을 목표로 진행하는 사이드프로젝트를 어떻게 시작하고, 어떻게 진행하면 좋을지 참고할 수 있도록 저희가 진행한 모든 과정을 오픈하고자 합니다 개발 팀원 Eric Project leader & Backend developer Sight Backend developer Pompitzz Frontend developer 030ii Designer & Frontend developer 우리가 보여주고싶은 것들 MANNALGA 이용해보기! 백엔드팀의 영혼이 담긴 API .. 2021. 4. 18.
Java Version 변경 후 Gradle Build가 되지 않을 때 개요 Super Invention은 Kotlin 기반으로 제작되는 Rest API 서비스입니다. 개발을 진행하다가 Java/Kotlin/Gradle의 버전업을 진행하였고, 버전업 직후부터 빌드가 되지 않는 이슈가 생겼습니다. Java 및 Kotlin의 새로운 버전 설치는 IntelliJ에게 맡겨두고 버전 업된 버전을 설정파일에 명시해주기만 하면 되는 간단한 작업이었습니다. 소스코드는 아래와 같이 수정하였습니다. 새롭게 깔린 자바 버전으로 제 윈도우 데스크탑의 환경변수 JAVA_HOME 경로를 변경해주었고 gradle도 새로운 버전에 따라 새로 설치하였습니다. 새로운 자바가 잘 설정되었는지 확인하는 것에는 CMD창을 연 후 자바 버전을 확인하는것 만큼 확실한 방법이 또 없습니다. 바로 자바 버전을 확인하니.. 2021. 3. 15.
[Kotlin] 프로그래머스 크레인 인형뽑기 게임 import java.util.* import kotlin.collections.ArrayList class Solution { var stackList = ArrayList() var basket = Stack() fun solution(board: Array, moves: IntArray): Int { var answer = 0 // 1. 2차원 배열을 스택 리스트로 변경하기 for (i in 0..board[0].size-1) { var stack = Stack() for (j in board.size-1 downTo 0) { if (board[j][i] != 0) stack.push(board[j][i]) } stackList.add(stack) } // 2. 인형을 바구니에 넣는 기능 개발 an.. 2020. 12. 18.
[Kubernetes] Replica Set, 파드의 개수을 항상 유지 Replica Set의 개념 쿠버네티스에서의 가장 작은 단위인 Pod는, 장애가 발생하거나 삭제되었을 때 자동으로 복구되지 않습니다. 즉, 관리자가 직접 파드가 죽은 것을 확인하고, 파드를 재생성하여 교체하여 주어야 정상적인 서비스를 받을 수 있습니다. 이렇게 관리자가 계속해서 파드를 재생성하는 것은 효율적이지 못합니다. 쿠버네티스는 이를 해결하기 위해 중간에서 파드의 개수를 실시간으로 확인하며 죽은 파드가 생긴다면 교체해주고, 재생성하여 언제나 지속적인 서비스를 제공할 수 있도록 만들어주는 파드의 관리자 성격인 레플리카셋(Replica Set)을 제공합니다. 레플리카셋은 복수의 파드를 생성하여 관리할 때 유효합니다. 자기 자신이 가지고 있는 파드의 템플릿을 사용하여 항상 일정 개수의 파드를 유지합니다... 2020. 10. 4.
[Kubernetes] Pod, 쿠버네티스의 가작 작은 단위 Pod의 개념 도커에서의 가장 작은 단위가 컨테이너라면 쿠버네티스의 가장 작은 단위는 Pod입니다. Pod는 도커에서 말하는 컨테이너를 하나 이상 묶은 단위입니다. 즉, Pod는 컨테이너의 그룹입니다. 그리고 이 Pod는 컨테이너 애플리케이션을 배포하기 위한 기본 단위가 됩니다. Pod라는 이름의 유래를 살펴본다면 고래 떼(pod of whales)나 콩꼬투리(pea pod)를 이름의 유래로 가지고 있습니다. 이렇게 묶인 컨테이너 그룹인 Pod는 다음과 같은 특징을 가지고 있습니다. 스토리지와 네트워크를 공유합니다 컨테이너 구동에 대한 명세를 가지고 있습니다 내부 콘텐츠를 함께 배치하고 실행하며 스케줄합니다 공유 콘텍스트에서 실행합니다 파드는 그 자체로 어느 정도의 격리된 환경을 제공합니다. 파드 내부의.. 2020. 10. 4.