전체 글

안녕하세요 :) 우아한테크코스 5th BE 하디입니다 잘 부탁드립니다 !
프로젝트를 진행하면서 겪었던 문제에 대해 적어보려 합니다. 여담이지만 글을 쓴다는 것은 참 어려운 것 같아요. 저는 제가 개발중인 서비스이고 고민도 많이 해봤기에 어떤 내용인지 자세히 알지만 글을 읽는 독자분들은 제가 겪은 상황을 자세히 모르시기에 이해가 안되는 부분이 있을거라 생각해요. 그렇기에 나름의 상황설명을 덧붙여 글을 잘 써보려해요. (노션에 정리해보고 다듬어 글을 작성합니다.) 저는 현재 개인카페를 대상으로한 웹서비스 기반 스탬프적립 서비스를 개발중입니다. 이해가 잘 안되시거나 궁금한게 있으시면 댓글로 남겨주시면 감사하겠습니다. 요구 사항 임시회원으로 적립한 스탬프와 리워드 적립내역을 회원가입과 동시에 이전한다. 저희 서비스는 전화번호만으로 쉽게 스탬프 적립을 할 수 있도록 개발중입니다. 저희..
프로젝트를 진행하면서 테이블의 스키마를 변경할 일이 생겨서 책을 읽어보고 내용을 정리해보려고 합니다 ~ 이에 관련된 내용은 다음에 글로 다뤄보겠습니다 ! 스키마 변경 ? 단순히 ALTER TABLE ~ 하면 되는거 아니야? 그런데, 실제로 사용자들이 서비스를 이용하는 환경에서 스키마를 변경해도 문제가 없을까? 실시간으로 DML이 계속해서 들어오는 상황에서 스키마를 변경해도 될까? 행여, Lock이라도 잘못걸리면 어떡하지? 이러한 걱정과 궁금증때문에 이번 챕터를 읽었습니다 ㅋㅋ (1) DDL(Data Definition Language) DDL이란 DBMS 서버의 모든 오브젝트를 생성하거나 변경하는 쿼리다. 쉽게 말하면 데이터의 포맷을 결정하는 쿼리라고 할 수 있다. CREATE, ALTER, DROP, ..
· 네트워크
안녕하세요. 오랜만에 글을 써보네요. 오늘은 HTTPS 에 대해서 알아보려고 합니다 ! HTTPS 에 대해 글을 쓰는 이유는 다음과 같은데요. 팀 프로젝트의 HTTPS 적용의 필요성 네트워크 스터디를 하는 도중 HTTPS가 키워드로 등장 평소에 궁금했던 내용이기도 하였고 이참에 제대로 알아보자고 생각하여 공부하고 정리해보았으니 혹시 잘못된 내용이 있다면 댓글로 부탁드립니다. 1. HTTPS의 필요성 HTTP와 HTTPS의 차이점이 무엇일까요 ? (1). 메시지 암호화 사진출처: https://www.geeksforgeeks.org/difference-between-http-and-https/ 위의 그림을 보시면 알 수 있듯이 HTTP는 메시지를 암호화하지 않고 전달하기 때문에 중간에 탈취당하면 Plain..
스프링을 공부하다보면 무조건 등장하는 어노테이션이다. 내가 현재 알고있는 지식은 @Controller, @Service, @Repository 모두 @Component라는 어노테이션을 포함하고 있기 때문에 컴포넌트 스캔 대상이되어 빈으로 등록된다는 것이다. 그런데, 이런 의문점이 생겼다. 모두 @Component 어노테이션을 포함하는데, 굳이 구분하는 이유가 무엇일까? 각각의 특징이 따로 있는 것일까? 모두 스프링 컨테이너가 관리하는 빈의 등록되기 위해서 위와 같은 어노테이션을 사용했다면, @Component만 쓰면 되었을텐데 왜 나누어 놓은 것일까? 그 이유가 분명히 있을 터..! 이러한 의문점에서 시작하였다. @Controller 첫 번째로 Intellij안에서 @Controller 어노테이션에 들어..
스프링 공부를 하면서 끝없이 밀려오는 기술 부채를 따로 정리하고 공부하려 합니다.... 사실 우아한테크코스 레벨1 인터뷰를 진행하면서 Depth있는 학습을 좀 더 했으면 좋겠다라는 피드백을 들었습니다. 어떻게 하면 깊이있는 공부를 할 수 있을까에 대해 며칠을 고민했습니다. 고심 끝에 결정한 방법은, 미션을 하든 학습을 하든 궁금한 내용이나 키워드가 등장할 시 바로 기록하여 앞으로 공부해야할 내용으로 기록해두는 것입니다. 나중에 봤을 때 내가 이런 걸 궁금해했었구나를 쉽게 알 수 있습니다. 그리고 그 내용을 공부하면서 새롭게 등장하는 궁금한 점을 tree처럼 기록해둡니다. 마치 나무가 뿌리를 내리듯, 하나의 내용을 공부하면서도 그 안에서 또 궁금한 점을 기록하고 공부하여, 깊이 있는 공부를 할 수 있을 거..
저번 글에서는 List.CopyOf에 대해서 다뤘는데요. 이전 글: https://zerotoinfinite.tistory.com/9 Java - List의 복사 (2): List.copyOf 리스트의 복사 두 번째인 List.copyOf에 대해 알아보자! 저번 글에서 Collections.unmodifiableList에 대해 다뤘으므로 이 글을 읽기 전에 먼저 읽으시면 이해가 잘 될 겁니다! 이전 글: https://zerotoinfinite.tisto zerotoinfinite.tistory.com 오늘은 리스트 내 원소(객체)들 까지 복사하여 새로운 리스트를 만드는 법에 대해 알아보겠습니다!! 방법만 아는 것은 의미가 없다고 생각합니다. 언제 어느 상황에 리스트 내 객체까지 복사해야하는지를 알아야됩..
리스트의 복사 두 번째인 List.copyOf에 대해 알아보자! 저번 글에서 Collections.unmodifiableList에 대해 다뤘으므로 이 글을 읽기 전에 먼저 읽으시면 이해가 잘 될 겁니다! 이전 글: https://zerotoinfinite.tistory.com/8 Java - List의 복사 (1): Collections.unmodifiableList 우아한 테크코스를 진행하면서 받았던 리뷰와 찾아서 공부했던 내용을 바탕으로 적었다. 공부하는 건 많아지는데 쉽게 까먹을까 봐 블로그에 쓰기로 다짐.. 총 3가지의 리스트 복사에 대해서 다 zerotoinfinite.tistory.com 리뷰어님의 리뷰를 받아 리팩토링을 한 나의 코드는 다음과 같았다. public List getCars() ..
우아한 테크코스를 진행하면서 받았던 리뷰와 찾아서 공부했던 내용을 바탕으로 적었다. 공부하는 건 많아지는데 쉽게 까먹을까 봐 블로그에 쓰기로 다짐.. 총 3가지의 리스트 복사에 대해서 다룰 것이다! Collections.unmodifiableList List.copyOf stream을 활용한 deepCopy 오늘은 첫번째로 Collections.unmodifiableList에 대해 다룰 것이다. 문제 상황 public List getCars() { return Collections.unmodifiableList(cars); } 처음 리뷰요청을 하였을 때 나의 코드는 위와 같았다. 사실 저렇게 쓴 이유는... 다들 저렇게 써서.. 였던 것 같다. 리뷰어님은 저 코드를 보고 이렇게 말씀하셨다. 내부의 car..
Java - Iterator 목차 Iterator 란? Iterator Method Iterator, get 시간 측정 1. Iterator 란? Iterator란 Collection에 저장된 데이터에 접근하는데 사용되는 인터페이스이다. 즉 List, Set, Map등과 같은 컬렉션의 데이터에 접근할 수 있다. 내부 구조가 다르지만 표준화된 인터페이스를 제공하면서 공통적으로 데이터에 접근할 수 있는 것이다. List list = new ArrayList(); Iterator iterator = list.iterator(); 2. Iterator Method hasNext() 다음 원소가 있으면 true, 없으면 false를 반환한다. 주로 while문과 함께 쓴다. (다음 원소가 있으면 로직 진행) Li..
Java - Collections Class 목차 Collections 사용 이유 Collections 기능 1. Collections 사용 이유 Collections는 static method를 가진 class이다. 인스턴스를 생성하지 않고도 method를 가져다 쓸 수 있다. List, Set, Map을 등을 다루는 method들이 정의 되어 있기 때문에 따로 직접 구현을 하지 않고 사용할 수 있다. 대표적으로 List를 정렬하는 method인 Collection.sort()가 있다. 즉 Collection Framework를 다룰 때 유용한 method를 제공한다. 2. Collections 기능 Collections Class에는 다양한 기능이 있지만 자주 쓰는 기능에 대해서 알아보도록 합시다!!..
zerotoinfinite
하디의 정리 노트