![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/57CKh/btrZUB7oxAx/NGtkKwNYtqgYMJu6ktf4kk/img.png)
GIT LFS(Large File Storage)란? 앞서 다뤘던 git은 소프트웨어 개발 프로젝트를 관리하는 데 범용적으로 사용되는 버전 제어 시스템(Version Control System)이다. 하지만 소스 코드들을 담고 있는 여러 개의 작은 텍스트 파일만 처리하도록 설계되었다. 때문에 프로젝트 내의 리소스 파일의 크기가 클 경우 문제가 될 수 있는데, 이 프로젝트를 git으로 관리 할 경우, 이력 파일의 크기도 함께 늘어나게 되어 git clone, git pull 동작 시 프로젝트를 불러오는데 오랜 시간이 걸리는 문제가 발생한다. (이때 시간만 오래걸리면 다행이다. 저장소로 사용되는 서버가 죽는 경우도 발생한다고 한다.) 이를 위해 remote 저장소에서 대용량의 파일 원활히 다루기 위해, 해당..
branch 란? 모든 버전 관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다. 위는 git-book에서 설명해 놓은 branch에 대한 설명이다. git의 branch는 다른 VCS들과의 몇 가지 차이 점을 가진다. 매우 가볍다 나중에 merge하도록 권장 "나중에 merge" 가 다른 VCS와 가장 큰 차이라 생각하면된다. 거기다 branch에서 작업하고 main branch에 반영할 때, pull request라는 메인 작업자의 허락이 떨어져야 main branch에 반영이 되는 기능도 제공한다. 이 외에도 여러가지 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/zMpYJ/btrZH2jHTn1/eKQF7RynlUUQ6KWmK59mak/img.png)
앞서 git을 정리하면서 git ignore와 git reset을 그냥 넘어갔다. 짚고 넘어갈 내용이 많아서 챕터를 빼서 정리해보려고한다. 파일 무시하기(gitignore) Git Working Directory 아래에서 작업을 하다보면 의도하지 않은 파일이 생성되어 Untraked 상태로 나타나게 된다. 보통 로그 파일이나 빌드 시스템이 자동으로 생성한 파일이 그렇다. 이러한 경우 .gitignore 파일을 이용해 해당 파일을 자동으로 무시하도록 설정할 수 있다. .gitignore 파일의 경우 다음과 같은 규칙을 따른다. ## '#'로 시작하는 라인은 무시한다. ## 애스터리스크(*)는 문자가 하나도 없거나 하나 이상을 의미 ## [abc]는 중괄호 안에 있는 문자 중 하나를 의미 ## 물음표(?)는..
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120911 2. 풀이 솔직히 어려운 문제는 아닌데 최종 return을 위해 String으로 만드는 방법들이 재밌어서 정리해봤다. 나도 나름 괜찮게 짰다 생각하는데 다른사람 답중에 꽤나 인상깊은게 있어서 추가했다. 3. 코드 내 답안 import java.util.stream.Collectors; import java.util.*; class Solution { public String solution(String my_string) { String[] arr = my_string.toLowerCase().split(""); return Arrays.stream(arr).sorted().co..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/TZ5nz/btrYUvHdV0M/7BdaNR0ZlSd8K9ahRBVdm0/img.png)
정확히는 AWS EC2에서 뿐만아니라 Tomcat을 베이스 이미지로 생성한 Docker 컨테이너에 war 파일을 배포할 때 발생하는 문제이다. 배포는 에러없이 진행된다. 그러나 서버로 요청을 날리면 404가 발생한다. localhost_access_log에는 요청이 제대로 들어오는 것이 확인 됐고, contextpath도 정상적으로 지정했는데도 말이다. 해결방안 프로젝트 파일을 jar로 묶어서 배포하면된다. 문제가 저것 뿐이고, 해결방안이 저것 뿐이면 따로 포스팅하진 않았을 것 같다. 왜 404가 나는지 문제를 알아보면, war파일로 배포를 진행하게 되면 별도의 web.xml이 생성되지 않는다. 그래서 web.xml이 하는 대표적인 역할인 URL 경로와 해당 경로의 요청을 처리하는 서블릿 사이의 매핑을 ..
DB에서 값을 꺼내왔을 때나, API 로 주고 받았을 때 JSON 형태의 데이터를 String 타입으로 저장하는 경우가 있다. 이 데이터를 화면에 바로 뿌려주면 {"key":"value"} 위와 같이 한 줄 텍스트로 출력이 된다. 화면단에서 파싱해서 써도 되지만 Java 단에서 JsonPretty를 적용할 수 있다. Jackson 패키지의 ObjectMapper의 writerWithDefaultPrettyPrinter 매서드 쓰면 된다. 아래의 테스트코드를 실행시켜보자 String singleLineJson = "{\"key\":\"value\"}"; ObjectMapper objectMapper = new ObjectMapper(); try { Object json = objectMapper.readV..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/t9XXR/btrX42zNmI2/ANDHbeqGGRP6rhGWkXkkH1/img.png)
정확히는 리눅스에서 프로세스를 실행하는 과정에서 발생하는 문제다. 만약 AWS EC2에서 서버 배포 시, 포어그라운드(foreground)에서 Spring boot로 구현한 jar를 실행시켜버리면 해당 서버에서 아무것도 할 수 없게 된다. 그리고, 로그인된 서버 세션이 끊어지게되면, 해당 프로세스도 종료되게 된다. 이런 문제를 해결하기 위해서 리눅스에서는 백그라운드에서 프로세스를 실행시킬 수 있게 해놨다. 1. 프로세스 백그라운드 실행 명령어 nohup 명령어를 쓰면 된다. nohup 명령어는 접속된 서버의 세션이 끊어져도 그 프로세스가 계속 유지되도록 하는 명령어인데, 여기서 프로세스가 백그라운드에서 게속 떠있게끔하는 설정이 있다. nohup java -jar demo-0.0.1-SNAPSHOT.war..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/8DT5Z/btrYapm7xPd/KGvKl4hNuelUHlIK6hxYR0/img.png)
12월 초에 chatGPT를 처음 안 이후 꾸준히 써왔는데, 최근 갑자기 주목받으면서 특정 시간대 사람들이 몰려서 접속하기도 힘들고 자주 연결이 끊어지기 시작했다. 편하게 쓰고 싶은 마음에, 무슨 방법이 없을까 하다가 OpenAI에서 제공하는 API를 찾게 되었고, 바로 사용해봤다. 이런 저런 문제가 있어 오래걸렸지만, 결과도 괜찮게 나오고, EC2에 배포했는데도 생각보다는 응답이 빨랐다. 처음 설계는 AWS EC2 + Docker로 배포하려고 했지만, 어떤 이유에서인지 Docker에 코드를 올린 후, Tomcat에서 배포가 안됐다. 그래서 일단 AWS EC2만으로 배포해 사용해봤다. 제목에는 ChatGPT API라 작성했지만, 정확히는 OpenAI에서 제공하는 통합 API다. 때문에 학습 관련 API도..
- Total
- Today
- Yesterday
- openAI API
- cache
- ChatGPT
- CloudFront
- Log
- 티스토리챌린지
- S3
- Kotlin
- EKS
- AWS
- AOP
- MySQL
- serverless
- springboot
- Elastic cloud
- 스프링부트
- JWT
- lambda
- OpenAI
- 오블완
- terraform
- OpenFeign
- Spring
- java
- AWS EC2
- elasticsearch
- GIT
- 람다
- docker
- 후쿠오카
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |