전체 글 260

[사내 도커 스터디] #1 클라우드 컴퓨팅

Ch.1 클라우드 컴퓨팅 1.1 클라우드 컴퓨팅 개요 클라우드: 사용자가 언제든지 인터넷, 모바일 등을 통해 IT 서비스를 제공받을 수 있도록 하는 컴퓨팅 기술 애자일 방법론을 활용한 민첩한 서비스 도입과 탄력적인 확장/축소, 자동화 서비스 유지관리 등으로 1) 운영 비용은 낮추고 2) 비즈니스 요구사항 변화를 빠르게 적용할 수 있는 환경을 제공 1.1.1 클라우드 컴퓨팅이란? 💡 인터넷 기술을 이용해 다수의 사용자에게 하나의 서비스로서 방대한 IT 능력을 제공하는 컴퓨팅 방식 사실상 사용하는 만큼 요금을 내는 방식 → IT 서비스 각 요소를 유틸리티로 인식한다! 클라우드 컴퓨팅 = 그리드 컴퓨팅 + 유틸리티 컴퓨팅 그리드 컴퓨팅: 가상 네트워크를 이용해 분산된 컴퓨팅 자원을 공유하도록 하는 기술 방식 ..

DevOps 2023.02.08

[사내 도커 스터디] #0 Introduction

Introduction 어쩌다보니 새해벽두부터 사내 스터디를 주관하게 됐다. 주제는 도커인데, 이전부터 도커를 공부하고 싶었지만 짬이 잘 나지 않아 계속 미뤄두던 차였다. 사실 지금은 자바 & 스프링에 더 집중해야 될 때가 아닌가 싶기도 했고. 그런데 FE팀 분들과 이야기를 나누다가 FE/BE/QA 상관없이 다같이 스터디해보는 게 어떻겠냐는 의견이 나왔다. 특정 분야에 속한 기술 혹은 언어가 아닌 개발 전반에 걸쳐 배울 수 있는 게 무엇일까 하다가 도커가 나왔다. 생각해보니 프론트 단도 도커로 말아서 띄우고 할테니 (사실 QA분께는 무엇이 도움될까 잘 모르겠긴 한데..) 다같이 해보면 재밌겠다 싶었다. 계속 우선순위에 밀려있던 도커였기에 이참에 두 달 남짓 빡세게 조지고 끝내기로 했다. 1. 목적 도커 ..

DevOps 2023.02.08

23년 1월 리뷰( w/ 동료 피드백)

Introduction 새해 첫 회고다. 요즘 개빠져서 주간 회고를 다 생략해버렸다 ㅎ..2월부터 제대로 쓰도록 하자. 이래저래 정신없었다. 6개월에 한 번씩 돌아오는 셀프 & 동료 리뷰 기간도 그렇고 연봉협상에 이것저것 신경쓸 게 많았던 한 달이었다. ( 적을 때마다 느끼지만 역시 늘 변명일 뿐이다 ^__^.. ) 이번 1월 리뷰는 동료 피드백으로 대체한다. 먼저 리뷰 관련 내용부터 체크해보자. 지난 1월에 있었던 가장 큰 이벤트 중 하나는 2022 H2 Review이다. 이전 H1 리뷰와 비교해서 얼마나 달라졌는지 체크해보자. 사실, 지난 H1의 경우 들어온지 겨우 2달 남짓인데다 수습 기간 중에 진행됐던 평가였기에 성과라던지 딱히 보여준 게 없는 상황에서 진행됐다. 반면, 이번 H2 리뷰는 6개월 ..

이기는 게임

ChatGPT가 계속 난리다. Netflix가 3.5 년, Instagram이 2.5 개월에 찍은 100만 사용자라는 지표가 우습게도 5일 만에 깨졌다. 가장 밀접하게 맞닿아 있는 직군인 개발자들 사이에서도 혼란이 가득하다. 언제 대체되지 않을까 하는 불안감이 만연하다. 코드도 다 짜주고, 심지어 아키텍처까지 구상해준다. 우리한테 남은 건 무엇일까 싶다. 관점이 바뀌어야 한다. 인간 대 AI 싸움이면 우리는 필연적으로 질 수밖에 없다. 아예 안 되는 것과 되는데 아직 별로인 건 완전히 다른 게임이기 때문이다. 승리의 본질이 시간이라면 언제냐의 관점이지 되냐 안 되냐는 더 이상 의미가 없어진다. AI를 다룰 줄 아는 사람과 그렇지 못하는 사람 간의 게임이라면 어떨까. 사람이 20층 높이에서 떨어졌을 때 죽..

인사이트 일기 2023.02.03

@ParameterizedTest: 반복적인 테스트를 한 번에 돌릴 수는 없을까?

@ParameterizedTest: 반복적인 테스트를 한 번에 돌릴 수는 없을까?🤔 Introduction 버그 수정 관련 티켓을 발급받았다. 이메일 검증 로직 관련 버그였는데, 마이크로서비스 간에 서로 다른 이메일 validator를 써서 일어난 문제였다. 문제의 원인을 파악한 뒤, 동일한 validator를 쓰도록 변경하고 나서 테스트 코드를 작성했다. 그런데 테스트 코드마다 넣어줘야 할 이메일 값만 다를 뿐, 나머지는 전부 동일한 로직의 코드를 매번 작성하려니 여간 찜찜할 수가 없었다. 반복적인 테스트를 한 번에 돌릴 방법이 없을지 고민했다. 마침 코드 리뷰에서 @ParameterizedTest를 쓰는 게 어떻겠냐는 코멘트를 받았다. 이번 시간에는 @ParameterizedTest의 정체와 이를 사..

Java 2023.01.28

[JPA 내부 동작 원리: 엔티티 매니저, 영속성 컨텍스트 및 장점] 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 (3)

이번에는 JPA의 내부 동작에 대한 이론에 대해서 공부해보도록 하자. JPA를 이해하려면 영속성 컨텍스트에 대한 이해가 반드시 필요하다. JPA에서 가장 중요한 2가지를 꼽으라면 아래 둘을 꼽는다. 객체와 관계형 데이터베이스 매핑하기(Object Relational Mapping, ORM) 영속성 컨텍스트 이번에는 영속성 컨텍스트에 대해 얘기해보자. 엔티티 매니저 팩토리 & 엔티티 매니저 영속성 컨텍스트를 이해하려면 먼저 엔티티 매니저 팩토리와 엔티티 매니저에 대해 이해해야 한다. 엔티티 매니저 팩토리(Entity Manager Factory): 웹 어플리케이션에 하나만 존재하며, 고객의 요청이 들어올 때마다 엔티티 매니저를 생성하는 역할을 한다. 엔티티 매니저(Entity Manager): 내부적으로 ..

Spring Data 2023.01.12

[JPA CRUD & JPQL] 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 (2)

본격적으로 JPA 실습에 들어가보자. 해당 예제는 Github(링크)에 올려뒀다. (아래는 김영한님 강의인 자바 ORM 표준 JPA 프로그래밍 - 기본편에서 공부한 내용을 정리한 것입니다.) H2 데이터베이스 설치 & 실행 해당 예제를 작업하기 위해서는 H2 데이터베이스가 필요하다. H2는 실습용으로 쓰기 위한 인메모리 DB이다. 링크(클릭)를 누르면 해당 페이지로 이동할 수 있다. 우리는 1.4.199 버전을 사용할 것이니 해당 버전을 다운받도록 하자. 프로젝트 생성 이어서 프로젝트를 생성한다. IntelliJ 상단 바에서 File → New → Project를 클릭하면 아래와 같은 창이 뜬다. 우리 프로젝트 스펙은 위와 같이 설정하도록 하자. 자바 8 이상 Maven(강의에서 Maven을 이용했기에 ..

Spring Data 2023.01.05

[JPA와 모던 자바 데이터 저장 기술] 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 (1)

SQL 중심적인 개발이 왜 문제냐? 애플리케이션을 만들 때는 비즈니스 도메인의 복잡성을 단순화하기 위해 Java, Python과 같은 객체 지향 언어를 사용한다. 반면 데이터베이스를 다룰 때는 객체 지향과는 전혀 다른 패러다임을 적용한다. 대표적으로 관계형 DB를 생각해보자. Oracle, MySQL 등을 사용한다. 그런데 애플리케이션은 결국 서버와 DB로 구성되어 있고, 서버에서 다루는 데이터는 결국 DB로 저장된다. 그런데 이때 데이터를 서버에서는 데이터를 객체로 감싸지만, 이렇게 객체로 관리하려면 관계형 DB의 도움이 반드시 필요하다. 즉, 지금 시대는 객체를 관계형 DB에서 관리한다고 봐도 과언이 아니다. 문제는 관계형 DB에서 데이터를 가져와 객체로 관리하려면 반드시 SQL문을 작성해야 한다는 ..

Spring Data 2023.01.01

2022 H2 회고

Introduction 2022년 12월 31일. 내일이면 2023년이다. 작년 이날은 카이스트 문지캠에서 정글 동기들과 보냈는데, 오늘은 가족 여행을 다녀온 뒤 집에서 회고글을 쓰며 마무리하고 있다. 격세지감이라는 네 글자 말고 이를 설명할 길이 없다. 대학원과 창업, 실패를 거쳐 개발자로 커리어를 시작하기까지. 정말 행복한 한 해를 보냈다. 많이 성장했고, 많이 깨졌다. 놀기도 후회없이 놀았다. 20대의 마지막을 이리 행복하게 보내도 되는 건가 싶을 만큼. 회고를 시작하기 전에 스스로 고생많았다고 말해주고 싶다. 잘했다. 더할 나위 없이 잘했다. 중간에 아쉬운 것도 많았고 노력을 덜할 때도 있었겠지만, 괜찮다. 앞으로 더 잘하면 되니까. 얼마 전에 정글 동기 형과 밥을 먹으면서 그런 얘기를 했다. 올..

그래서 왜 객체를 지향해야 한다고? 한 장으로 끝내는 객체지향 총정리[객체지향의 사실과 오해 정리 및 서평]

Introduction 현재 우리 회사에서 사용하는 프로그래밍 언어는 자바이다. 입사하고 처음 자바를 공부하면서, 그 전까지는 말로만 듣던 객체지향 프로그래밍에 대해서 역시 접하기 시작했다. 5월 즈음부터였나. 라는 책으로 자바 공부를 시작했는데 변수와 타입, 연산자, 반복문 등 기초 문법을 떼고 나니 본격적으로 클래스, 상속, 다형성, 인터페이스 등 온갖 객체지향 관련 용어가 쏟아지더라. 물론 각 용어가 어떤 의미인지 설명과 예시가 잘 되어 있어서 이해하는데 큰 어려움은 없었다. 하지만 지금 떠올려보면 그때의 공부는 그림책 속 사과 이미지를 보고서 "이것은 사과고, 빨갛고, 먹으면 달고 아삭한 식감이 난다"라는 사과의 특징을 문자로 받아들이는 것에 지나지 않았다. 그도 그럴 것이, 자바는 그 본질 자체..

독서일기 2022.12.28