이 영역을 누르면 첫 페이지로 이동
개발다이어리 블로그의 첫 페이지로 이동

개발다이어리

페이지 맨 위로 올라가기

개발다이어리

저만의 개발일지를 만들어가는 공간입니다.

분류 전체보기

  • 개발다이어리
LocalDate 사용해보기

LocalDate 사용해보기

2022.08.26
날짜 직접 지정하기 LocalDate.of(2022, 8, 25)// 2022-08-25(년, 월, 일을 직접 지정하여 가져오기) LocalDate.parse("2022-08-25")// 2022-08-25(문자열 형식의 날짜를 LocalDate형식으로 변환하기) LocalDate.now()// 2022-08-25(오늘 날짜 가져오기) 날짜에서 필요한 값 가져오기 val now = LocalDate.now()// 2022-08-25(오늘날짜) println( now.year )// 2022(년 가져오기) println( now.month )// AUGUST(월 가져오기 - 영어로 표현) println( now.monthValue )// 8(월 가져오기 - 숫자로 표현) println( now.dayOfY..
스프링 부트와 AWS로 혼자 구현하는 웹 서비스

스프링 부트와 AWS로 혼자 구현하는 웹 서비스

2022.07.04
다니던 회사를 나오고 어떤 공부를 어떻게 해야할지 찾는 중에 발견한 책이었다. 처음 책을 접한 곳은 '개발바닥'이라는 유투브였다. 시니어 개발자 두 분이서 여러 주제로 이야기를 나누는 채널인데 아무것도 모르는 내 입장에서는 두 분의 이야기만 들어도 많은 것을 알 수있는 꽤나 유익한 채널이었다. 그 두 분중 한 분이 집필한 책이 바로 이 책이다. 필자는 첫 회사를 SI로 다녔었다. 그래서 그런건지 아니면 그냥 그 회사가 그런건지는 모르겠지만 상당히 오래된 기술들 위주로 프로젝트를 꾸려갔었다. JSP, Spring Core, MaBatis 등등 프론트와 백엔드 둘 다 상황은 비슷했다. 그렇다보니 최신 사용하는 기술들을 새롭게 공부할 필요가 있었고 이 책을 선택했다. 이 책은 정말 다양한 기술스택들을 사용해서..
.gitignore에 등록했는데 동록이 안될 때

.gitignore에 등록했는데 동록이 안될 때

2022.06.29
들어가기에 앞서 프로젝트를 진행하다가 공개되면 안되는 파일은 .gitignore에 등록해서 git에 등록되지 않도록 한다. 그런데 가끔 .gitignore에 올렸는데 git에 올라가는 경우가 있다. 이것은 캐시 때문이다. 해결방법 git rm -r --cached [파일명] 을 입력해주면 된다.
Nginx를 이용하여 무중단 배포하기

Nginx를 이용하여 무중단 배포하기

2022.06.29
들어가기에 앞서 Nginx는 아파치와 더불어 가장 많이 사용되는 웹 서버이다. Nginx가 가진 정말 많은 기능들이 있지만 이번엔 '리버스 프록시' 라는 기술을 활요하여 서버에서 무중단 배포를 하는 방법을 알아보자. 리버스 프록시란? 프록시 서버의 종류는 두 종류가 있다. 포워드 프록시 : 클라이언트와 웹 서버 사이에서 중계역할을 해준다. 리버스 프록시 : 클라이언트와 내부 서버를 연결하는 프록시이다. 여기서 리버스 프록시는 클라이언트가 요청한 내용을 어떤 서버로 보내야할지 결정하는 역할을 해줄 수 있다. 만약 2개의 WAS를 실행시키고있다고 했을 때 클라이언트가 요청을 했을 때 어떤 WAS로 요청을 전송할지 선택할 수 있는 것이다. 이런 역할을 로드벨런서라고 한다. 로드벨런서의 역할은 부하를 줄이는 대..
TravelDiary 프로젝트 회고

TravelDiary 프로젝트 회고

2022.06.28
드디어 길고 긴 하나의 프로젝트가 끝이났다...! 전체기간은 솔직히 잘 모르겠다. 공부를 하고 공부한 내용으로 프로젝트를 진행하는 것이 아니라 공부를 하면서 그것을 바로 적용해보기 위해서 프로젝트를 같이 진행한 것이다 보니 명확하게 기간을 잡기가 힘든 것 같다. 이 프로젝트에서 진행한 모든 기술스택은 이번에 처음 사용해보는 기술들이었다. 이전 회사에 있을 때는 Spring, JSP, MyBatis, JQuery 등등 정말 이제는 잘 사용하지 않는 기술들만 사용했었기 때문에 회사를 나오고 새롭게 출발하기 위해서 지금 많이 사용하는 기술들을 익힐 필요가 있다고 느꼈고 그걸 위해서 진행한 프로젝트였다. 진행과정 진행과정이 정말 순조롭지 않았다. (1) 처음보는 기술들 일단 모르는 기술이라는 것 자체가 공부할 ..
로컬 파일업로드 S3로 전환하기

로컬 파일업로드 S3로 전환하기

2022.06.28
들어가기에 앞서 처음 파일업로드를 구현할 때는 로컬에 파일을 저장하고 로컬에서 가져와서 보여주도록 구현했다. 하지만 ec2를 사용해서 배포하면서 로컬에 저장할 수는 없기 때문에 S3에 저장하고 불러오는 방식으로 변환하고자 한다. IAM과 S3 설정 IAM설정은 2가지가 있다. 사용자 : AWS가 아닌 외부에서 AWS로 접근하기 위한 권한 역할 : AWS끼리 접근하기 위한 권한 지금은 외부에서 AWS로 접근하는 것이기 때문에 사용자 추가를 해주어야 한다. 그리고 S3안에서 사용 할 bucket을 만들어야 한다. 하나의 프로젝트, 덩어리, 폴더.... 라는 느낌으로 이해하면 될 것이다. S3와 IAM설정은 [AWS] - S3 사용을 위한 IAM과 S3설정 를 참고하면 된다. 라이브러리 추가 및 설정 이제 본..
S3 사용을 위한 IAM과 S3설정

S3 사용을 위한 IAM과 S3설정

2022.06.28
들어가기에 앞서 EC2와 같은 클라우드 서버를 이용해서 배포를 해야할 경우 파일의 저장장소를 로컬로 지정할 수가 없다. 그렇다고 EC2와 같은 서버내부에 저장하는 것도 매우 비효율적이고 권장하지 않는 방법이다. AWS는 S3라는 것을 제공하며 S3는 정적파일을 저장하는 것에 특화되어있는 저장소이다. S3를 사용하기 위한 권한 설정들을 알아보도록 하자. IAM설정 IAM(Identity and Access Management)은 AWS에서 제공하는 것들을 사용하기 위해 권한을 설정하는 작업이다. 여러가지 권한을 설정할 수 있지만 지금은 S3만 살펴보도록 하자. IAM에서 권한 설정을 할 때 크게 2가지중에 선택해야 한다. 사용자 : AWS가 아닌 외부에서 AWS로 접근하는 권한 역할 : AWS내부에서 AW..
JPA 일대다 조인 데이터 부풀려지기 방지하기

JPA 일대다 조인 데이터 부풀려지기 방지하기

2022.06.27
들어가기에 앞서 JPA에서 1:N관계의 두 엔티티를 조인해서 조회하면 데이터가 부풀려지는 현상을 볼 수 있다. 예를 들어 게시글 1개와 이미지 3개를 서로 다른 엔티티에 저장한 뒤 조인해서 조회하면 같은 게시글이 3개가 조회된다. 이것은 1:N관게에서 나타나는 문제이다. 데이터가 부풀려지는 이유 SQL을 사용해보면 1:N상황에서 inner 조인하면 매칭되는 모든 데이터가 나타나게 된다. 게시글 테이블에 "title" 이라는 속성이 있다. 이미지 테이블에 "name"과 게시글 테이블에 대한 외래키가 있다. 이 테이블에는 게시글 테이블에 저장한 2개의 이미지가 저장되어있다. 즉, 게시글 테이블의 외래키가 2개가 있다. 이 상황에서 두 테이블을 조인해서 조회하면 title name board_id 게시글 제목..
Nginx 웹 서버 알아보기

Nginx 웹 서버 알아보기

2022.06.25
들어가기에 앞서 사람들이 가장 흔히 알고있는 웹 서버는 Apache일 것이다. 얼마나 유명하면 Tomcat과 합쳐서 Apache Tomacat이라고 까지 불리니 말이다. 필자도 얼마전까지 계속 그렇게 알고있었지만 Nginx를 알고나서는 생각이 바뀌었다. 사실 생각이 바뀐게 아니라 팩트가 그렇지 않았다. 얼마전까지만 해도 압도적이었던 Apache가 이제는 Nginx에 밀려버린 것이다. 웹 서버에 대해서 Nginx는 웹 서버의 종류 중 하나이다. 보통 요청이 이루어지는 과정을 살펴보면 클라이언트 - 웝 서버 - WAS - DB 의 순서로 이루어진다고 볼 수 있다. 여기서 웹 서버의 역할을 하는 것이 Nginx이다. 여기서 웹 서버는 정적인 요소들을 처리하는 작업을 해준다. 예를 들면 변하지 않는 데이터인 이..
JPA필수코스 N+1문제 해결하기

JPA필수코스 N+1문제 해결하기

2022.06.25
들어가기에 앞서 JPA를 처음 사용하면 정말 어쩔 수 없이 필수적으로 마주하는 문제가 바로 N+1문제이다. 연관관계와 무관하게 select절에 조회한 데이터만 가져오고 나머지는 프록시로 가져오는 JPA의 특성상 조회한 엔티티의 연관관계에 속해있는 엔티티를 조회하면 해당 엔티티를 조회하는 수 만큼 쿼리가 새로 나가는 현상이다. N+1문제 발견하기 처음부터 코드를 잘 짜면 좋겠지만 이번 프로젝트 자체가 공부를 하면서 진행한 프로젝트이다보니 N+1이란 존재도 나중에 알게되었다. 동작하는 쿼리문을 하나씩 살펴보면서 문제가 발생하는 곳을 찾았고 바로 수정하였다. 해당 문제는 Board와 Image테이블에서 나타났다. 현재 게시글 엔티티인 Board와 게시글안에 저장할 수 있는 Image엔티티가 1:N관계로 이루어..
Git-flow사용해보기

Git-flow사용해보기

2022.06.23
들어가기에 앞서 원래 처음 git을 제대로 공부하기 전에는 단순히 git과 github를 소스코드 저장용도로만 사용했었다. 이전에 회사에서 사용했던 것이 SVN이었다보니 특별한 전략을 이용해본적도 없었고 단순히 코드를 관리할 수 있고 필요하면 지난 코드를 가져올 수 있다는 장점으로만 사용했었다. 하지만 알고보니 git을 사용한 프로젝트관리에도 여러가지 전략이 있었고 이미 많은 곳에서 이 전략들을 활용해서 프로젝트를 관리하고 있다는 것을 알았다. git-flow에 대해서 자세히 알고 싶은 분은 [Git] - Git-flow를 이용한 프로젝트 관리을 참고하면 좋을 것이다. git-flow전략을 선택한 이유 git을 공부하는 중에 많이 접하게 된 것도 git-flow였고 여러 회사들을 알아보던 중 채용공고에 ..
Git-flow를 이용한 프로젝트 관리

Git-flow를 이용한 프로젝트 관리

2022.06.23
들어가기에 앞서 이제는 정말 많은 개발자들이 git을 이용해서 프로젝트를 관리한다. 협업에서도 그렇고 토이 프로젝트를 만들 때도 git은 이제 절대 떨어질 수 없는 존재가 되었다. 그리고 이 git을 활용한 다양한 협업방법중 하나인 git-flow가 있다. git-flow의 단점들을 보안하기 위한 github-flow나 gitlab-flow등도 있지만 여기서는 git-flow만 알아보도록 하자. 이건 개인적인 의견이지만 git을 branch로 나눠서 사용하고 merge해보는 등의 적극적인 활동을 해보지 않고는 git-flow에 대해서 이해해보기 힘들 수도 있다. 또한 커밋이나 병합등의 작업으로 가지가 뻗어나오는 것을 경험해보지 못한 사람들도 이해하기 힘들 수도 있다. 먼저 git에 대해 어느정도 이해하고..
  • 최신
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 다음

정보

개발다이어리 블로그의 첫 페이지로 이동

개발다이어리

  • 개발다이어리의 첫 페이지로 이동

검색

메뉴

  • 홈
  • Github
  • 방명록

나의 외부 링크

카테고리

  • 분류 전체보기 (66)
    • Spring (19)
      • MVC (7)
      • Boot (3)
      • Core (8)
      • Security (1)
    • Java (1)
    • 네트워크 (7)
    • JPA (6)
    • IntelliJ (2)
    • Database (1)
      • h2 (1)
      • postgreSQL (0)
    • 토이 프로젝트 (5)
      • 여행일지작성 (5)
    • 에러모음 (7)
    • 테스트코드 (2)
    • Git (8)
    • Nginx (2)
    • AWS (1)
    • 책 리뷰 (1)
    • Kotlin (2)
    • 회고 (1)
      • 24년도 회고 (1)
    • API문서 (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • HTTP
  • HTTP상태코드
  • 연관관계 매핑
  • http 헤더
  • JPA
  • 단방향 매핑
  • 테스트코드 실행안됨
  • 네트워크 #TCP #IP #인터넷 통신

정보

ssung의 개발다이어리

개발다이어리

ssung

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © ssung. Designed by Fraccino.

티스토리툴바