목록전체 글 (7)
Hyen Dev

최근에 본 면접에서 JAVA+SpringBoot로 진행한 프로젝트에 대해 언급했더니 JAVA에 대해 얼마나 아는지, 객체지향에 대해서는 얼마나 알고있는지에 대한 질문이 들어왔었는데,배운지 오래되기도 했고, 일단 개발부터 하느라 바빠서 제대로 된 답변을 하지 못했던 것 같다.그래서 다시 한 번 복기해볼 필요가 있겠다는 생각에 이번 글을 작성하게 되었다.JAVA란?자바(Java)는 C언어에 객체 지향적 기능을 추가하여 만든 C++과는 달리, 처음부터 객체 지향 언어로 개발된 프로그래밍 언어이다.자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여, 운영체제와는 독립적으로 동작할 수 있다.-> 따라서 자바는 어느 운영체제에서나 같은 형태로 실행될 수 있다!JAVA 구성요소JDK(J..

Docker란? Docker란 컨테이너 기반의 오픈소스 가상화 플랫폼이다.가상화, 컨테이너, Docker에 대해 차례대로 알아보려고 한다.가상화가상화란 물리적인 컴퓨터 리소스를 다른 시스템이나 애플리케이션에서 사용할 수 있도록 제공하는 것을 말한다. 가상화 이전에는 각 OS마다 전용 물리적 서버 하나에서 실행해야 했기 때문에, 여러 OS를 수행해야 하는 경우에는 그만큼 별도의 서버가 필요했다. 그 말은 내가 서비스를 Window, Mac, Ubuntu 환경에서 사용하거나 개발하고 싶다면 그만큼의 물리적 서버를 여러개 마련해야했다.하지만 가상화 이후에는, 운영체제와 하드웨어가 분리되어 여러 운영체제를 하나의 물리적 머신에서 동시에 실행할 수 있다.가상화 종류1. OS VirtualizationHost OS..

최근에 회사에서 여러 외부업체 백엔드 컨설팅을 해주면서 여러 서비스의 DB ERD 설계를 하게되었는데, 그 과정에서 그동안 대충 공부하고 넘겼는데 정말 많이 쓰이는 개념들에 대해 다시 한 번 제대로 정리해보려고 한다.식별 관계(Identifying) vs 비식별 관계(Non-Identifying)데이터베이스 테이블 사이에 관계는 외래 키가 기본 키에 포함되는지에 따라 비식별 관계와 식별 관계로 나뉜다. 식별 관계(Identifying)부모 테이블의 기본키가 자식 테이블의 외래키이면서 동시에 기본키가 되는 관계자식 테이블이 부모 테이블의 존재 여부에 의존적이다실선으로 표기한다비식별 관계(Non-identifying)부모 테이블의 기본키가 자식 테이블의 (비기본키 영역에서) 외래키로만 사용되는 관계두 테이블..

배경 상황이번 글 역시 저번 글에서 언급했던 GDSC 미니 프로젝트와 관련된 글이다.AI 파트 팀원들이 백엔드보다 개발 시작을 늦게 하여 api를 개발할 때는 잠시 생각을 미뤄두고 있었던 점에 대해 다시 고민하기 시작하였다. 현재 백엔드는 Nest.js를 이용하여 이미 모든 api 개발이 다 끝난 상태이고, AI 파트에서는 임의로 학습시킬 이미지들을 생성하여 모델 학습까지 완료한 상태이다.여기서 우리가 고민했던 점은 백엔드에서 모델로 학습시킬 데이터를 어떻게 넘기고, AI 모델 학습 후 결과 데이터는 어떻게 백엔드로 넘겨줄 수 있는가 였다. 그동안 ai와 관련된 프로젝트를 진행해본 적이 한 번도 없었기 때문에 백엔드와 AI 개발을 따로 진행하는 경우엔 어떻게 그 데이터 전송 과정이 이루어지는지 몰랐던 것..

Nest.js 선정 과정최근에 GDSC에서 시작한 mini project는 프론트, 서버, ai 파트가 적어도 한 명 이상씩 참여해야했기 때문에 처음 기획단계에서는 ai가 대부분 파이썬을 이용하니까 백엔드는 장고로 진행하자!라고 결정했었다.하지만, 막상 개발을 하려고보니 그건 장고 안에서 ai 모델을 직접적으로 사용할때나 의미있는 기능들이지, 우리는 백엔드와 AI 담당이 명확하게 나뉘어져있었기 때문에 ai파트에 데이터를 넘겨주거나 받아오기만 하면 되는 상황이다. 그래서 서버 스터디에서 사용했던 node.js를 쓰는걸로 변경했다.거의 반년만에 다시 본 node.js는 나에게는 생각보다 불편한 점들이 많았다. 현재 내게 제일 익숙하고 편한 스프링부트와 계층 구조가 많이 달랐으며, 결정적으로 스프링부트에선 J..

최근에 회사에서 배포를 하면서 nginx 설정을 한 번 잘못했다가 에러 해결에 고생을 하면서 nginx에 대해 좀 더 제대로 공부를 해야겠다는 생각을 하게 되었다. nginx에 대해 알기 위해 먼저 웹 서버가 무엇인지부터 알아보려고 한다.웹 서버웹 서버란 클라이언트가 웹 브라우저에서 어떤 페이지를 요청하면, 해당 요청을 받아들여 정적 콘텐츠를 제공하는 서버이다.여기서 정적 컨텐츠란 단순 HTML 문서, CSS, javascript, 이미지 등 즉시 응답가능한 컨텐츠이다.웹 서버의 역할은 크게 2가지가 있다.앞에서 말한 정적 컨텐츠를 클라이언트로 전달하거나 전달받아 저장하여 처리한다.동적컨텐츠 요청이 들어왔을 때, 해당 요청을 WAS에게 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달해준다.대표적인..