일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 라피신
- UNICON
- UNICON2023
- 온라인테스트
- UNIDEV
- RDS
- CICD
- 백엔드
- 게임개발동아리
- 오블완
- 스프링부트
- 체크인미팅
- 배포
- 도커
- 스프링
- 백엔드개발자
- 프로그래밍
- AWS
- EC2
- 티스토리챌린지
- 프리티어
- 위키북스
- 자바개발자
- Developer
- 생활코딩
- 42서울
- 인프라
- 인디게임
- 전국대학생게임개발동아리연합회
- 개발공부
- Today
- Total
목록Study (64)
Hyun's Wonderwall
2024-2학기 이화여자대학교 컴퓨터공학과 졸업프로젝트 '캡스톤디자인과창업프로젝트A (01)' 스타트를 진행하며 작성한 글입니다. 3학년 2학기째인 이번 학기에 졸업 프로젝트를 시작했습니다. 저는 현재까지 백엔드 개발, UI/UX 디자인을 주로 담당하였는데, 방학 때는 AI도 조금 더 참여하게 될 것 같습니다. Mooney(무니)는 개인 일정 및 소비 특성 기반 밀착 관리 가계부 서비스로, 예산 설정과 지출 관리에 어려움을 겪는 사회 초년생을 타깃으로 합니다.팀원들 모두 다양한 이유로 지출 관리와 금융 습관 형성에 대한 니즈를 가지고 있었기에 이와 같은 서비스를 기획하게 되었습니다. 저 같은 경우 평소 예산을 아예 수립하지 않아서 돈 관리가 잘 되지 않는 편이었는데, 서비스 기획을 위해 자료 조사를 진..
처음으로 서버 배포 담당을 맡은 때부터 지금까지, 항상 모든 프로젝트에서 백엔드 서버를 켜두면 서버가 오래가지 못하고 짧게는 몇 시간에서 길면 며칠 후 맛이 가고는 했다. 즉, EC2 인스턴스가 상태 검사 - 인스턴스 연결성 검사에 실패하는 일이 잦았다. 이 문제 상황에서 나는 주로 [인스턴스 재시작]을 시키거나 [인스턴스 중지] + (잠시 기다리고) + [인스턴스 시작]을 수동으로 진행시켜서 해결해왔었다. 많은 경우에 이 방식으로 해결되었지만 종종 해결이 안 되기도 해서... 오래 중지해 두어도 안 돌아오면 인스턴스를 새로 만들었었다. (AMI로 인스턴스 복제하는 법 몰랐을 때는 아예 nginx, docker 다 새로 깔았다...) 메모리 사용량이 높으면 인스턴스가 꺼진다는 말을 읽고 인스턴스 유형을 ..
TDD, 단위 테스트 TDD: 테스트 주도 개발 (Test-Driven Development)작은 단위의 테스트 케이스를 작성하고 이를 통과하는 구현 코드를 추가하는 단계를 반복. TDD의 절차실패하는 테스트 코드 작성테스트를 통과하는 프로그램 작성 (테스트를 통과하는 최소한의 간단한 코드)코드 리팩토링단위 테스트: 하나의 모듈(기능/메서드)을 기준으로 독립적으로 진행되는, 최소 단위의 테스트. 단위 테스트 예시구현할 기능의 테스트코드를 작성단위 테스트를 통과하기 위한 코드를 작성테스트 통과 확인(=기능 구현 완료). 이후 리팩토링을 진행한다.TDD의 Given-When-Then (주석으로 표시하고는 함)Given : 테스트를 위해 필요한 상황 준비When : 테스트하는 메서드 실행Then : 테스트 결..
아이디/이메일과 비밀번호 사용하는 일반 JWT 로그인 구현해보았고Redis를 쓰지 않고 리프레시없이 액세스 토큰만을 사용하는 카카오 로그인 구현해보았는데이제 Redis를 쓰는 소셜 로그인을 해야 한다..! 소셜 로그인이 너무 힘든 여정이어서 다 정리된 글을 찾기 어려워서 메모를 하며 진행해보려 한다 https://do5do.tistory.com/20 [Spring] Spring Security + OAuth2 + JWT이번 개인 프로젝트에서 Spring Security를 활용하여 OAuth2 로그인을 구현했다. Spring Security의 OAuth2를 활용하는 방법과 JWT 발급까지 모두 정리해보려고 한다.참고) 개발 환경은 Spring boot 3, Java 17을 사do5do.tistory.com..
사용하던 AWS 계정이 프리티어가 만료되었는데, 프로젝트를 12월까지 올려놓기로 해서 새 AWS 계정으로 리소스들을 이전하는 절차를 진행하였다. (프로젝트 구경하기 ➡ https://songpin.kr/) 통째로 옮기는 방식이 아니고, 백업본을 다운로드받아 다시 올리는 식이다. 열심히 작성했었는데 글을 날려버려서 간단하게 적고, 참고한 글들 링크를 아래에 달아둔다. A계정에서 B계정으로 리소스들을 옮기고자 한다. (*VPC는 새로 세팅했다.) EC2 AMI로 옮기고, 탄력적 IP 전송하기1. A계정에서 EC2를 AMI로 만들어 B계정에 AMI 공유를 해주고, B계정에서 AMI로 인스턴스 생성한다. 2. A계정에서 탄력적 IP "전송 활성화"를 하고 B계정에서 탄력적 IP "전송 수락", 새로 만든 인스턴..
[Spring Boot] 백엔드 서버 배포방법 총정리 - AWS EC2, RDS + Docker + GitHub Actions로 CI/CD🌿0. 시작하기 전에이 글은 AWS EC2, RDS + GitHub Actions + Docker 기술을 사용해 Spring Boot 프로젝트를 배포하는 방법을 차근차근 안내한다. 필자가 야매로 터득한 방법으로, 백엔드 서버를 빠르게 배포하는 방법을 설명하는 데 초점을 맞추고 있다. HTTP 배포하는 법 중심으로 다루며, HTTPS를 적용하는 방법 또한 글 후반부에 소개한다.백엔드 개발자가 혼자 배포를 연습하거나, 프론트엔드 로컬과 통신할 때나, 프론트엔드와 백엔드를 같은 서버로 배포할 때는 HTTP여도 문제없다. 다만 프론트엔드와 백엔드를 따로 배포하는 경우(=3..
(이 포스팅은 한글 폰트가 원래는 안 깨졌다가 머지 후 갑자기 깨지는 상황에 대한 문제해결을 다룹니다. 폰트를 처음 설치한 후 한글이 깨지는 경우는 다른 이슈이니, 다른 포스팅을 찾아보세요) Unity로 협업 프로젝트를 하다 보면 폰트가 깨지는 일이 자주 발생한다. 에러 메시지: The file 'Assets/TextMesh Pro/Resources/Fonts & Materials/Galmuri11 SDF.asset' seems to have merge conflicts. Please open it in a text editor and fix the merge.이 에러가 발생하는 원인은 한글의 문자 종류가 매우 많기 때문이다. 우리는 SDF 파일 (TMP_Font Asset) 의 Generation Se..
ERD를 설계할 때 컬럼을 NOT NULL로 설정하고, 엔티티 매핑을 위해 도메인 코드를 작성하다가 이것과 관련해 선택지가 많음을 알게 되었다. (사실 알게 된 지가 세 번은 넘었을 텐데, 정리를 해놓지 않았더니 헷갈려서 이번에 정리하게 되었다.)1. nullable=false컬럼을 NOT NULL로 설정하는 것. 엔티티와 매핑되는 테이블 생성을 위한 DDL 쿼리(create table)가 나갈 때, 컬럼에 NOT NULL 제약조건(constraints)를 걸어준다.이것은 데이터베이스 테이블 컬럼에 NULL 값이 삽입되는 것을 막는 것이어서, 서비스 로직에서 엔티티에 NULL이 들어오는 것은 아무런 에러를 발생시키지 않는다.2. @NotNullSpring Boot Validation 라이브러리(buil..
자바 스프링을 시작한 지가 벌써 1년이 넘었다. 시간이 무섭도록 빠르다!내가 스프링을 처음 공부했던 것은 작년 3월 인터넷 강의 스터디를 통해서였다. C++ 알고리즘 공부를 어느 정도 해본 상황이었어서, 자바 문법을 간단히 익히고 용기 있게 바로 스프링에 도전했었다. 그러나 얼마 못 가 내가 얼마나 무모했는지를 깨달았는데, 강의 자체도 어려운 강의였는데 나는 객체 지향과 웹 기초 지식(HTTP 등) 조차 없었다. 결국 막막한 이론 부분은 감만 잡고 넘어가버리고 코드를 따라 치고 구현하는 것을 확인하기 급급했던 기억이 난다.. 이론 지식이 빈약하다보니 프로젝트 실전에 뛰어들었을 때 더욱 많은 에러를 만났다. ERD 설계를 잘못하거나 Service끼리 필드 주입을 해주어 순환 참조가 나는 등... 프로젝트 ..
EFUB 4기 BackEnd Lead_ 도메인 주도 개발 스터디스터디 커리큘럼: 최범균, "도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지"3주차 과제: Chapter 10. 이벤트, Chapter 11. 애그리거트 트랜잭션 관리Chapter 11. CQRSKeywords: 명령 모델과 조회 모델, CQRS 장단점11.1 단일 모델의 단점시스템 상태를 변경할 때와 조회할 때 단일 도메인 모델을 사용하면 성능에 문제가 생길 수 있고 구현이 복잡하다.복잡도 낮추는 방법: 상태 변경을 위한 모델과 조회를 위한 모델을 분리하는 것.11.2 CQRS시스템이 제공하는 기능 (1) 상태 변경, (2) 상태 정보 조회.상태를 변경하는 범위와 상태를 조회하는 범위가 정확하게 일치하지 않음. 복잡도 해결을..