전체 글 323

이벤트 관리 기능 : Spring 구조 설계 정리

이벤트 컨트롤러 부분 코드를 해석해보려고 한다이 EventController는 이벤트(프로모션) 관리 API를 모아둔 스프링 컨트롤러입니다🔹 /api로 시작하는 URL로 들어오는 요청을 받아서🔹 이벤트 조회/종료/등록을 처리해 "이 코드가 뭘 하는지 / 어떻게 동작하는지"를 한 번 분석해보겠다 1) 이 클래스가 하는 역할 한 줄 요약관리자는 이벤트를 등록/종료/전체조회를 할 수 있고,일반 사용자는 현재 진행 중인 이벤트를 조회할 수 있게 만든 REST API 컨트롤러이다🔹 @RestController : JSON 응답을 반환하는 컨트롤러🔹 @RequestMapping("/api") : 이 컨트롤러의 모든 API는 /api로 시작 2) 주입(Autowired)된 것들이 뭐 하는 애들인지 @Au..

노랭이 70P 부터 시작 56번, 60번, 62번

이 문제는 SQLD에서 자주 나오는 GROUP BY + ORDER BY 함정 문제라고 볼 수 있다GROUP BY를 썼으면 ➡️ SELECT, ORDER BY, HAVING 에서 그룹 기준 컬럼 OR 집계함수만 사용 가능 GROUP BY가 되는 컬럼의 특징같은 값끼리 묶을 수 있는 컬럼그 컬럼 값이 그룹의 기준이 됨 정답 3번 문제 요구 사항을 보자▪️승리건수 높은 순으로 3위까지 출력▪️그런데 3위 승리건수가 같은 팀이 있다면 같이 출력 표를 보면 A, E, D, F 총 4건이 나와야 한다 보기를 보면① TOP(3) ... ORDER BY 승리건수 DESC ❌ 무조건 3행만 잘라서 가져옴② TOP(3)인데 ORDER BY 없음 ❌③ WHERE ROWNUM ④ TOP(3) WITH TIES ... ORDE..

오너블리 프로젝트 GitHub 코드 가져와 Eclipse에 Import하기

ornably 폴더 안 ❌한 단계 위 gitFlow 폴더에서 ✅ pwd명령어를 입력해서 위치를 본다 git clone https://github.com/hurwan0629/ornably.gitclone를 한다 GitHub 프로젝트 전체 다운로드 완료 ✔ ornably 폴더 들어가기cd ornablygit branch -a이렇게 원격 브랜치가 나온다 develop 브랜치 체크아웃 git checkout develop정상적으로 develop 브랜치로 이동 완료된 상태✅ 로컬 develop 브랜치 생성됨✅ 원격 origin/develop이랑 연결됨 ✅ 지금 브랜치 = develop git pull최신코드 한 번 더 받기 git branch브랜치 확인* develop main이렇게 나..

Node 설치

먼저 node 다운로드https://nodejs.org/ko Node.js — Run JavaScript EverywhereNode.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.nodejs.org초록색 버튼 Get Node.js® 클릭 Windows 설치 프로그램 (.msi) 클릭 다운로드 된 파일 실행 Next I accept the terms in the License Agreement 체크 후 Next Next Next 특수 npm 모듈 쓸 때 체크하고..

노랭이 56P 부터 시작 36번 ~ 53번

정답은 1번이다SQL에서 NULL은 값이 아니라 '모름' 상태라서 =, !=, 같은 비교 연산자를 쓸 수 없음그래서 NULL 비교는 전용 문법을 써야 함 🔴NULL 비교 = 무조건 IS 붙인다 NULL 찾기 = IS NULL NULL 아닌 것 = IS NOT NULL 이 문제는 2015년 1월 전체를 찾는 SQL이 무엇인지 파악하고 결과가 다른 것을 찾으면 된다즉, 2015년 1월 한달 또는 하루 한 순간 구분 문제 이다 모든 보기 공통 조건이 가입일시 = 2014-12-01 00시 라는 것이다차이는 SVC_END_DATE 조건이다1, 2, 3번은 2015년 1월 한달을 나타내지만4번은 2015년01월1일0시만을 나타낸다 🍑 TO_DATE문자열을 날짜 타입으로 바꿔주는 함수 🍑 TO_CHAR날짜나..

스마트스토어센터 Oracle에서 MySQL로의 무중단 전환기를 읽으며...

https://d2.naver.com/helloworld/6512234 여기서 전달하고자 하는 내용은비싸고 느려진 Oracle을 싸고 가벼운 Mysql로 갈아탄 이야기를 전달하고자 하고 있다근데 이제 서비스를 끊지 않고 갈아탄게 핵심이라고 볼 수 있다 원래 상황을 보면스마스스토어 안에는 여러 팀이 있었다ex) 회원 파트, 주문 파트, 상품 파트 등등근데 이제 모두 같은 Oracle DB를 사용한다 문제 발생서비스가 커지면서 DB에 요청이 폭주하고ex) 회원 로그인, 주문 생성, 상품 조회, 이벤트 조회중 하나의 DB가 버벅거리기 시작했다 ➡️ 리소스 경합 👉 CPU/메모리/디스크/Lock 서로 싸움 👉 서비스 느려짐, 장애 발생 Oracle을 계속 쓰면 안되는 이유Oracle은 좋은 DB지만라..

🍏 개발일기 2026.02.17

노랭이 40P 부터 시작 1번 ~ 20번

문제 1. 다음 중 데이터 제어어(DCL)에 해당하는 명령어는?1. INSERT2. RENAME3. COMMIT4. REVOKE정답 4번문제 4. 데이터베이스를 정의하고 접근하기 위해서는 데이터베이스 관리 시스템과의 통신수단이 필요한다이를 데이터 언어(Data Language)라고 하며, 그 기능과 사용 목적에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 구분된다. 다음중 데이터 언어와 SQL명령어에 대한 설명으로 가장 부적절한 것은? 비절차적 데이터 조작어(DML)는 사용자가 무슨 데이터를 원하며, 어떻게 그것을 접근해야 되는지를 명세하는 언어이다DML은 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터베이스를 실질적으로 접근하는데 사용되며 SEL..

노랭이 126P 부터 시작 124번 ~ 127번

문제 124. 아래는 임시부서(TMP_DEPT) 테이블로부터 부서(DEPT) 테이블에 데이터를 입력하는 PL/SQL이다부서 테이블에 데이터를 입력하기 전에 부서 테이블의 모든 데이터를 ROLLBACK이 불가능 하도록 삭제 하려고 한다다음 중 (ㄱ)에 들어갈 내용으로 옳은 것은?지금 부서 테이블 데이터를 ROLLBACK 불가능하게 삭제하고 싶은 것이다이 뜻은 TRUNCATE TABLE을 사용하겠다는 것과 같다💠 DELETE : ROLLBACK 가능💠 TRUNCATE : 자동 COMMIT ➡️ ROLLBACK 불가능 🍑 PL/SQL조건문 + 반복문 + 변수까지 가능한 프로그램처럼 동작하는 것 🍑 TRUNCATE테이블 데이터 전부 싹 삭제하는 명령어롤백이 불가능 하다 TRUNCATE TABLE DEPT..

AWS 계정 삭제하는 방법

무료 체험으로 배포할 때 인스턴스를 생성하여 사용해보았다이제 계정을 삭제하고자 한다 계정 삭제 방법 AWS에 로그인을 한 뒤오른쪽 상단 내 계정 이름을 클릭한다 계정 이름을 클릭하면 드롭다운 되는데거기서 "계정"을 클릭한다 계정 해지 글씨의 주황색 버튼을 클릭한다 그럼 이런 창이 뜨는데ID는 그냥 한 번 가려봤다암튼.. 계정 ID를 입력하면 오른쪽 밑의 "계정 해지" 버튼이 활성화된다 이렇게 위에 초록색 문구로 해지 요청이 제출됐다는 걸 볼 수 있다 새로 고침해보니 계정이 폐쇄되었습니다 라고 한다아직 이메일은 안왔지만..

🍏 개발일기 2026.02.15

노랭이 123P 부터 시작 118번 ~ 123번

118번. 다음 중 아래 SQL의 실행 결과로 가장 적절한 것은?이 문제는 "연속으로 이어지는 구간을 한 덩어리로 보고, 덩어리의 시작/끝만 남기는 쿼리"이다 문제에 나와있는 표를 보면데이터의 구간이 있다표는 10~14 | 14~15 | 15~15 | 15~18 | 20~25 | 25~(끝이 없음 ▶️ 99로 변경해서 25~99로 취급) 이런 구간들이 있다 정렬 순서 먼저 확정 ORDER BY start_val, NVL(end_val, 99)🔼윈도우 함수가 보는 순서는 이것이다주어진 데이터 end_val이 NULL이면 99로 변경 FLAG1 = “앞이랑 이어지냐?” 조건 : 내 START_VAL = 바로 전 행 END_VAL 이면 이어짐(1) 아니면 끊김(0)즉, 내가 덩어리의 시작점이냐? 보..