[LOATODO] 모집 게시판 API 리팩토링
·
Project/LOATODO
1. 서론로아투두 새로운 기능으로 "모집 게시판"을 개발하는 중이다. 전형적인 게시판 형식이기 때문에 API 개발에 그렇게 큰 시간이 들지않았다.List 조회하는 Get API상세내용 조회하는 Get API글작성 Post API글수정 Put API글삭제 Delete API 2. 문제메인화면 데이터는 각 카테고리별 최신 5개의 데이터를 불러온다.만약 이 데이터를 앞서 개발한 List 조회하는 Get API로 불러온다면새로고침 한번에 6번의 API 요청이 필요하다!! 기획할 때 놓쳐서 새롭게 API를 하나 개발하였다.  3. 개발1) SQL 작성원하는 형태의 데이터를 불러오기 위한 SQL문을 작성해본다.카테고리 별로 최신 5개의 데이터를 불러와야하기 때문에, UNION ALL을 사용해서 작성해보았다.( ..
[LOATODO] 프로젝트 구조 변경 계층형 -> 도메인형 (진행중)
·
Project/LOATODO
1. 서론보통 MVC 패턴을 사용하는 프로젝트 구조는 레이어 계층형과 도메인형으로 구성되어 있습니다. [계층형 예시]  [도메인형 예시] 계층형 구조가 프로젝트 전체 구조 파악은 쉽지만, 세부적으로 어떠한 도메인들이 연결되어 있는지 파악하기 어렵습니다. 예시로 현재 로아투두 Service 단만 보더라도... 한폴더안에 너무 많은 클래스가 모입니다. 그래서 전반적인 프로젝트 구조를 도메인형으로 변경하려고 합니다.   2. 모집 게시판 구조 변경먼저 현재 작업중인 모집 게시판의 구조부터 변경하고자 한다. 최상단이 domainV2인 이유 - 이미 domain 폴더를 쓰고있어서 추후 변경기존 Controller -> Api 로 이름 변경@RestController를 쓰기 때문에 크게 보면 Controller가..
[LOATODO] 어쩌다 서비스 운영 / 약 2년 동안의 회고
·
Project/LOATODO
1. 2022년 9월 ~ 2023년 5월 / 방황- 국비 수료 후 취업, 수습 후 퇴사- 본격적인 Spring Boot 공부- 로스트아크 오픈 API로 여러가지 데이터 비교 (Spring Boot + JSP) 7월에 국비교육을 마치고 9월 쯤 4개의 프로젝트(라고 부르기 민망한)를 가지고 운좋게 취업을 빨리하였다.PHP 기반의 보안 회사의 UI/UX 팀이였는데, 보안 회사라 그런가... 나랑은 좀 안맞았다새로운 것을 배우고 무언가를 만들고 싶어 개발을 시작했는데 조금 다른 느낌...그래서 2달의 수습을 마치고 퇴사를 하였다. 그리고 월급으로 인프런에서 김영한 강사님 인강을 다 샀다. 한 100만원 좀 넘었나..?실력도 많이 오르고 사고방식도 달라지고 지금 2024년인데도 아직까지 반복해서 보고있다. 그러..
[CS/WEB] 쿠키, 세션 그리고 로컬스토리지
·
Computer Science/Web
웹 애플리케이션에서 데이터를 저장하고 관리하는 것은 중요합니다.이를 위해 주로 사용되는 3가지 방식인 쿠키, 세션, 로컬스토리지에 대해 알아보겠습니다. 1. 쿠키(Cookie)쿠키는 웹사이트가 사용자의 브라우저에 저장하는 작은 텍스트 파일입니다. 특징용량 : 대략 4KB만료 : 설정 가능 (만료일 없으면 세션 쿠키)서버 접근 : 가능 (요청 시 자동으로 서버에 전송)보안 : HttpOnly, Secure 플래그로 보안 강화 가능 주요 용도사용자 로그인 상태 유지사용자 선호 설정 저장트래킹 및 광고 사용 예시// 쿠키 설정document.cookie = "username=John Doe; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";// 쿠키 읽기let usernam..
[LOATODO] AWS로 스프링 CI/CD 구축하기 (3) ECS 릴리즈
·
Project/LOATODO
앞서 두 포스팅에서VPC 세팅을 하고 [Loatodo] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정기존 Elastic Beanstalk으로 배포중이던 Spring boot 서버 환경에서뭐하나 잘못건드렸는지 새로운 버전 배포시 CPU가 100% 찍히는 현상을 발견했다. 기존에도 물론 배포할 때 CPU가 높게 치긴 했지만 저정repeater2487.tistory.com Code Pipeline으로 빌드까지 해줬다. [Loatodo] AWS로 스프링 CI/CD 구축하기 (2) Code Pipeline 생성지난 포스팅에서 Spring CI/CD 구축의 첫 단계로 VPC 설정을 하였다. [Loatodo] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정기존 Elastic Beanstalk으로 배포..
[LOATODO] AWS로 스프링 CI/CD 구축하기 (2) Code Pipeline 생성
·
Project/LOATODO
지난 포스팅에서 Spring CI/CD 구축의 첫 단계로 VPC 설정을 하였다. [Loatodo] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정기존 Elastic Beanstalk으로 배포중이던 Spring boot 서버 환경에서뭐하나 잘못건드렸는지 새로운 버전 배포시 CPU가 100% 찍히는 현상을 발견했다. 기존에도 물론 배포할 때 CPU가 높게 치긴 했지만 저정repeater2487.tistory.com 두번째로 Code Pipeline을 이용하여 깃허브 레포지토리에 푸쉬가 되면 자동으로 빌드하도록 해보려고 한다. 1. Code Pipeline 생성AWS 파이프라인에서 '파이프라인 생성'을 클릭한다.  따로 추가적인 설정 없이 파이프라인 이름만 입력 후 다음으로 넘어간다.  소스 스테이지에..
[프로그래머스 / Java] 숫자 짝꿍
·
CodingTest/Java로 푼 코딩 테스트
풀이Map 형식으로 X, Y의 문자 빈도를 계산한다.9부터 0까지 내림차순으로 반복문을 만든다.두 개의 Map의 같은 키가 있으면 값 중 작은값 만큼 숫자를 추가한다(String)결과에 따라 리턴값을 변경한다.import java.util.*;class Solution { public String solution(String X, String Y) { // 두 숫자의 각 숫자 빈도를 저장할 맵 생성 Map countX = new HashMap(); Map countY = new HashMap(); // X의 숫자 빈도 계산 for (char c : X.toCharArray()) { countX.put(c, countX..
[프로그래머스 / Java] 점 찍기
·
CodingTest/Java로 푼 코딩 테스트
첫번째 풀이import java.util.*;class Solution { public long solution(int k, int d) { long answer = 0; for(int a=0; a 결과 시간초과 몇개와 다수의 실패가 보인다.제한 사항의 k와 d의 길이가 100만이여서 시간초과가 뜨는 것 같다.이 방식은 계속 시간복잡도가 클거 같아 다른 방식을 생각해보았다.  두번째 풀이import java.util.*;class Solution { public long solution(int k, int d) { long answer = 0; for(int a=0; a 결과일단 시간초과 문제는 해결하고 테스트 수행 속도도 반으로 줄었다. 세번..
[LOATODO] AWS로 스프링 CI/CD 구축하기 (1) VPC 설정
·
Project/LOATODO
기존 Elastic Beanstalk으로 배포중이던 Spring boot 서버 환경에서뭐하나 잘못건드렸는지 새로운 버전 배포시 CPU가 100% 찍히는 현상을 발견했다. 기존에도 물론 배포할 때 CPU가 높게 치긴 했지만 저정도는 아니였는데.... 이참에 예약 인스턴스도 쓸겸 빌드, 배포 환경을 하나하나 설정해보고자 한다. 1. VPC 생성VPC는 가상 프라이빗 클라우드(Virtual Private Cloud)의 약자로, 퍼블릭 클라우드 내에서 사용자가 독립적으로 사용할 수 있는 논리적으로 격리된 가상 네트워크를 의미합니다.우선 AWS Management Console에 로그인하여 생성된 VPC를 확인한다.보통 처음 생성하는 계정에는 기본 VPC 하나가 생성되어 있다.여기에 추가로 loatodo-vpc를..