목록분류 전체보기 (89)
설모의 기록
너무 오랜만에 글을 써서 티스토리 에디터가 변했는지도 몰랐네요..😭😭 최근 한 리엑트 프로젝트에 mobx 를 적용하다가 사소한 습관으로 인해 삽질한 경험이 있어 글을 쓰게 되었습니다. (빠른 시일 내에 React + Mobx + Typescript 적용기를 정리할 수 있길 바라며..) mobx 의 기본 튜토리얼은 여기 를 보시면 됩니다 :) 코드기본 튜토리얼을 보며 익히기 위해 복붙을 하지 않고 직접 작성을 했었습니다. 이게 삽질을 초래한 결과였죠.. (아래의 예제는 최대한 간단한 코드로 구성해보았습니다.) 아래의 코드는 React + Mobx + Typescript 로 구성되어 있습니다. 1. RootStore.tsimport { observable, action } from 'mobx'; export..
SOPT라는 동아리를 통해 이번 04월 11일에 naver 그린팩토리에서 열린 네이버 테크 콘서트가 열린다는 소식을 듣게 되었다. 업무와 관련된 외부교육이나 컨퍼런스를 휴가 사용없이 참석할 수 있게 해주는 회사 덕분에 (좋은 회사!!) 사전신청을 한 후에 참여할 수 있었다! 아래의 글에서 네이버 테크 콘서트를 참여한 후기를 남겨보려 한다. 이주용님 (네이버 스마트에디터 원) - 플랫폼 UI 개발 전략의 모든 것 - 플랫폼이란? 공통의 활용 요소를 바탕으로 본연의 역할도 수행하지만, 보완적인 파생 제품, 서비스를 개발할 수 있는 기반 - 초반엔 전략보단 퍼포머스 위주로 개발을 진행했다. 1. 서비스 구분없이 모든 스타일이 포함된 css 2. 여러 서비스의 요구사항을 한 css 에 합쳤기 때문에 최종 산출물..
다시 1년이 지나 회고를 쓰는 날이 오게되다니.. 2018년은 내 인생의 2막을 시작하게 된 계기가 되었다. 졸업하기도 전에 취업에 성공해 조금 더 여유로워졌으며, 그 덕에 좋아하는 사람들도 많이 만나고 여행도 많이 다닐 수 있었다. 두 번의 인턴 생활을 통해 성격도 많이 바뀌었고, 생각하는 관점도 많이 바뀌게 됐다.아래의 글에서 2018년을 정리해보았다. 카카오게임즈 퇴사나는 2017년 7월부터 카카오게임즈 스낵게임 클라이언트 개발 인턴을 시작했다. 중간에 계약 연장이 되어 총 8개월을 근무하였으며, 4학년 복학을 위해 퇴사를 하게 되었다.카카오게임즈에 근무하며 내가 많이 변했다. 게임을 좋아하지도 않던 내가 여러 게임을 만들면서 게임에 대한 인식이 많이 바뀌었다. 개발적으로는 깊게 공부해보고 싶었던 ..
하루 30분 36강으로 배우는 완전 초보의 SQL 따라잡기SQL 첫걸음 2번째 SQL 스터디 내용을 정리해보겠습니다. 2차 스터디 정리1. 데이터베이스 객체테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 데이터베이스 객체라고 말합니다. 즉 데이터베이스 내의 객체를 말하는 것입니다.데이터베이스 객체는 종류와 관계없이 이름 중복이 허용되지 않지만, 스키마가 다르다면 가능합니다. 이 데이터베이스 객체를 '스키마 객체' 라고 부르기도 합니다. 2. DELETE FROM 테이블명 VS TRUNCATE TABLE테이블내의 레코드를 삭제하는 명령에는 DELETE 와 TRUNCATE 두 가지 방법이 있습니다. DELETE DELETE 명령어를 이용하면 한 레코드씩 삭제를 진행하며 레코드 단위로 삭제했다..
하루 30분 36강으로 배우는 완전 초보의 SQL 따라잡기 SQL 첫걸음 Spring JPA 를 사용하기는 했지만 SQL 을 모르면 내부 쿼리가 어떻게 실행되는지를 잘 알지 못한채로 그냥 넘어가는 경우가 생길 수 있습니다. SQL 공부 해야지..해야지.. 하고 미루던 다짐을 스터디를 진행하며 실천하게 되었습니다. 우아한테크캠프에 참여할 당시, 교육을 해주시던 마스터님들이 추천해주신 책들을 바탕으로 계획을 짠 후에 스터디를 진행하기로 했습니다. (좋은 책 추천해주셔서 감사합니다. -HA, SH, YS의 깨알 인사) 이 책은 SQL 에 대해 깊은 내용까지 나와있지는 않지만 (그동안 알고 있었던 내용 복습 + 놓쳤던 부분) 에 대해 학습하기에 좋은 책입니다. 이번주에 책을 읽으며 스터디원들이 몰랐던 내용과 같..
상속 관계 매핑 여러 클래스를 구현할 때 공통된 기능이나 변수가 있다면 상위 클래스를 만들어 그 곳에 모아두는 '상속' 을 이용하는 경우가 많습니다. 가장 대표적인 예로 Animal 클래스라는 상위 클래스를 만들어 bark() 라는 함수를 만들어두고, 하위 클래스로 Dog, Lion, Cat 등을 만들어 bark() 함수를 오버라이딩하는 경우입니다. 그렇다면 객체의 상속 관계가 데이터베이스에서는 어떻게 매핑이 될까요? 이에 대한 설명을 아래에 기록하겠습니다. 상속 관계 매핑사실 RDB에서는 '상속' 개념이 따로 있지 않습니다. 따라서 ORM 에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타입 관계를 매핑하는 것입니다.슈퍼타입-서브타입 논리 모델을 실제 물리 모델인 테이블..
Web Socket? 웹에서 채팅을 구현할 때 사용하는 Web Socket 에 대해 알아보겠습니다. 보통 서버에게 정보를 요청할 때 HTTP/HTTPS 통신을 거치게 되는데요. HTTP/HTTPS 통신은 클라이언트가 요청을 했을 때 서버가 해당하는 정보를 응답해주는 구조입니다. 그러나 채팅은 누군가가 대화를 보내면 내가 서버에 요청을 보내지 않아도 서버가 저에게 정보를 주어야 합니다. 이럴 때 사용하는게 웹소켓입니다. 내가 원하는 정보에 대해 구독을 신청하고, 토픽에 대한 메세지를 발행하면 해당 토픽을 구독하고 있는 모든 사용자에게 보내주는 방식입니다. HTTP/HTTPS 는 같은 사용자가 서버에게 여러 번 자원이나 정보를 요청하는 경우에 매번 연결을 요청해야 하며 그 때마다 Header 에 요청 정보를..
데이터베이스에서의 연관관계와 JPA 에서의 연관관계 Spring 을 공부하면서 가장 헷갈리는 내용이 연관관계 매핑입니다. 데이터베이스의 외래키와 똑같이 생각하다가 함정에 빠지는 것이 태반입니다.데이터베이스에서는 외래키라는 하나의 컬럼을 가지고 연관관계를 표현합니다. 그러나 JPA 에서는 객체를 매핑합니다. 따라서 JPA에서의 연관관계 매핑은관계의 방향다중성 (다대일? 일대다? 다대다?)연관관계의 주인이 세가지가 중요합니다. 아래에 정리한 내용에서 위의 3가지를 알아볼 것입니다. 단방향 연관관계연관관계 중 다대일(N:1) 을 먼저 알아보겠습니다. 다음에서 설명할 예제의 객체들은 다음의 관계입니다.사람은 가족이 있습니다.사람은 하나의 가족에만 소속될 수 있습니다.사람과 가족은 다대일 관계입니다.위의 관계를 ..
JPA Persistence Spring JPA 를 공부하다보면 persistence 라는 말을 많이 들어보게 됩니다. (출처 : 네이버 영어사전) 무슨 소리지...하고 매번 넘어갔었는데 이번 기회에 정리를 하게 되었습니다. JPA 에서의 영속성은 위의 단어 해석처럼 Entity를 영구적으로 저장해주는 환경을 의미합니다. 책의 내용을 바탕으로 자세하게 정리해보겠습니다. EntityManagerFactory 와 EntityManager데이터베이스를 하나만 사용하는 애플리케이션은 보통 EntityManagerFactory 를 하나만 생성합니다. EntityManagerFactory 는 여러 EntityManager 를 생성하는 객체입니다. 두 객체의 차이점은 아래와 같습니다.EntityManagerFacto..
캐시 적용을 왜 해야 하는거지? 컴퓨터 전공자라면, 컴퓨터 관련 과목을 수강해 본 적이 있으시다면 '캐시(Cache)' 라는 말을 들어보신 적이 있을 것입니다. 캐시라고 구글링 해보시면 많은 자료가 나올텐데요. 결국 캐시는 성능을 개선하기 위해 적용합니다. 웹 사이트를 개발하는 데에 있어서 적용할 수 있는 캐시는 브라우저 캐시와 서버단에서의 캐시가 있을 것입니다. 브라우저 캐시는 이미 받아왔던 자원들은 캐시에 저장해둔 후 일정 기간동안 같은 리소스 요청은 캐시에 있는 내용을 반환하는 것입니다. 그러면 서버와의 통신에 따른 비용을 줄일 수 있습니다. 서버에서의 캐시는 DB를 조회하는 비용을 줄이기 위해서 많이 사용할 것입니다. 쇼핑몰을 예로 들면, 브라우저를 새로 로드할 때마다 상품 리스트를 보내줘야 하는..