본문 바로가기

전체 글

(28)
[프로그래머스] 완전범죄 - JAVA(DFS, 시간초과 해결방법) 문제https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근방법문제를 읽자마자 a, b가 물건을 훔치는 모든 케이스를 살펴봐야 a의 누적 흔적 최소값을 구할 수 있겠다는 생각이 들었고, 모든 케이스를 살펴보려면 DFS로 접근해야겠다 싶었습니다. 위의 트리 구조를 기반으로 문제를 풀었고, 아래와 같은 코드를 작성하였습니다. class Solution { int min = Integer.MAX_VALUE; public void dfs(int[][] info, int n, int ..
[Spring] Transactional 내의 Exception 발생 시 롤백제어 @Transactional 내에서 exception이 발생하면 롤백된다고 알고 계실텐데요.정확히는 @Transactional로 감싸진 로직 내에서 RuntimeException(Unchecked Exception)이 발생하면 롤백이 되고,Checked Exception은 예외처리를 해주기 때문에 발생 시 @Transactional내에 있다고 하더라도 롤백이 되지 않습니다. 이걸 활용하면 Exception 발생 시에 자유자재로 커밋/롤백을 구현할 수 있습니다. Checked Exception과 Unchecked Exception본론으로 들어가기 전에 Checked Exception과 Unchecked Exception에 대해 살짝 알아보겠습니다. Checked ExceptionChecked Exceptio..
[Jenkins] Jenkins와 Github 레파지토리와 연동하기 이전에 Mac에 Jenkins를 설치하였습니다.이번에는 Jenkins와 Github 레파지토리를 연동하겠습니다!1. Github에서 access token 발급받기settings -> developer settings 클릭합니다.Personal access tokens에서 generate new token 클릭합니다.아래와 같이 토큰 이름과 Jenkins가 요구하는 scope 설정합니다.완료하면 아래와 같이 access tokens이 발급됩니다. 이 토큰을 복사해주세요!창을 닫으면 토큰을 다시 발급받아야 하니 창은 닫지 않는 것이 좋습니다. 2. jenkins에 access tokens으로 깃허브 서버 추가하기Jenkins 관리에서 시스템 설정을 클릭합니다.add github server를 클릭합니다.서..
[Jenkins] Mac에서 Jenkins 설치하기 Jenkins는 소프트웨어를 개발 할 때 CI/CD 환경을 구축할 수 있는 툴입니다.그럼 Mac에서 Jenkins를 설치해보겠습니다!1. Jenkins 다운받기brew install jenkins-ltsbrew를 통해 다운 받습니다. 2. 시작하기설치가 완료되면 아래의 시작 명령어를 통해 시작을 합니다.# 시작brew services start jenkins-lts# 중지brew services stop jenkins-lts# 재시작brew services restart jenkins-lts# 삭제brew remove jenkins-lts 3. 실행하기http://localhost:8080으로 Jenkins를 실행하면, 아래의 화면을 볼 수 있습니다.위의 화면에서 볼 수 있듯이 /Users/사용자이름/...
[MYSQL] INSERT문, DELETE문, UPDATE문 MYSQL MYSQL의 CRUD 중 SELECT문에 관해서는 저번 포스팅에서 알아보았습니다. 이번에는 INSERT문, DELETE문, UPDATE문에 대해 알아보겠습니다! INSERT 문 INSERT INTO 테이블명(컬럼명) VALUES(데이터) insert into dept(department_id, department_name, manager_id, location_id) values(10, '기획부', 100, 101); insert into dept(department_id, department_name) values(20, '관리부'); insert into dept(manager_id, location_id, department_id, department_name) values(100, 10..
[MYSQL] SELECT문(조건절, GROUP BY, ORDER BY 등) MYSQL MYSQL의 CRUD는 INSERT, SELECT, UPDATE, DELETE가 있습니다. 그중 가장 많이 사용되는 SELECT문에 대해 알아보겠습니다! 기본 select 형식 SELECT (값, 컬럼명, 함수, sub query) FROM (테이블명, sub query) -- 기본 select select * from employees; select employee_id, last_name, first_name from employees; -- 임의 컬럼 select '이름: ', 20, first_name from employees; -- alias == 별명 select first_name as "이름", last_name as "성" from employees; select first_..
[Servlet&JSP] 서블릿(Servlet) 이란! Servlet이란자바를 사용하여 클라이언트의 요청에 따라 동적으로 웹 서비스를 제공하는 서버측 프로그램입니다.간단한 메소드 호출만으로 요청(Request)과 응답(Response)을 처리할 수 있게 해줍니다. 대표적인 메소드로는 doGet(), doPost()가 있습니다. Servlet 등록 방식(1) web.xml 사용 helloServlet sample1.HelloServlet helloServlet /location package sample1;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServl..
[SPRING] STOMP STOMP WebSocket을 사용하기 위해서는 WebSocketHandler가 필요하며, 어떠한 handler를 상속받는지에 따라 어떤 타입의 메세지를 처리할지 결정할 수 있습니다. 하지만 메세지가 어떤 포맷으로 전달될지, 어떤 내용을 담고 있는지에 대해서는 정의하지 않고 있기 때문에 이 부분을 직접 구현해야 한다는 번거로움이 있습니다. 이를 해결하기 위해 서브 프로토콜로 메세지의 형식, 유형, 내용 등을 정의해주는 프로토콜인 STOMP를 사용합니다. STOMP의 형식 COMMAND header1:value1 header2:value2 Body^@ STOMP의 형식은 위와 같습니다. COMMAND는 어떠한 종류의 메시지인지 알려주는 용도로, 대표적으로 SEND, SUBSCRIBE 등이 있습니다. 또한 ..