아이디어를 구체화하기 이전에 먼저 페르소나를 최대한 구체적으로 정해야 한다.ex) 일에 치이며 받은 스트레스를 풀 방법이 없는 30대 직장인본인이 생각한 Pain Point에 대한 근거를 찾아야 한다.근거는 특정 기관의 리서치 자료가 될 수도 있고, 뉴스 기사 혹은 인터뷰가 될 수도 있다.1번과 2번을 반복하였음에도 와닿지 않는 주제라면 과감히 넘겨야 한다.아무리 좋은 기획을 갖추었더라도 주어진 시간안에 완성하지 못하면 의미가 없다.구현 가능성과 사용자 만족을 위한 완성도도 충분히 고려해야 한다.
필자는 Github Actions의 @actions/upload-artifact와 @actions/download-artifact 를 활용하여 각 작업 간 빌드 산출물을 공유할 수 있도록 하였다. 이를 통해, 산출물을 빌드하는 작업과 해당 산출물을 통해 도커 이미지를 빌드하고 푸시하는 작업을 분리할 수 있다. 다만 해당 명령어를 사용하는 데 있어서 주의해야 할 점이 있다. 1. download-artifact의 path는 아티팩트가 저장되는 경로필자는 처음에 다음과 같이 작성했었다. 이렇게 작성한 의도는 다음과 같았다.이전 job에서 빌드한 *.jar 파일을 업로드하였고, 해당 파일을 다운로드 받는다.다운로드 받은 *.jar 파일을 ./build/libs 폴더에 app.jar라는 이름으로 저장한다.하지만..
RDS와 EC2를 연결하는 과정에서 https://developer111.tistory.com/52 해당 게시글을 참고하였다.RDS의 보안그룹을 생성하고, EC2가 속한 VPC 및 서브넷 ID를 참고하는 부분이 자연스럽게 받아들여지지 않았다.그만큼 보안그룹과 서브넷 그리고 VPC에 대한 개념이 정확하게 정리되어 있지 않다는 뜻이기에 해당 내용들을 정리해보았다. 필자가 의문을 가졌던 점은 다음과 같다.EC2와 RDS가 각각 다른 보안그룹을 갖는 이유DB 서브넷 그룹을 생성할 때, 모든 가용영역을 추가하는 이유해당 작업의 목적은 EC2가 RDS에 접근하기 위함이다. 따라서 RDS는 퍼블릭 주소를 갖고 있지 않기에 RDS 자체에 보안그룹이 설정될 필요가 있다고 판단했다. 먼저 AWS에서 보안그룹이 어떠한 역할..
1. JdbcTemplate을 사용했을 때, 발생하는 문제점JdbcTemplate을 사용하면 순수 Jdbc를 사용할 때 해야하는 여러 작업들을 스프링이 대신 해준다.순수 Jdbc를 사용하면 Connection, Statement, ResultSet을 가져오는 것부터 리소스 해제까지 해야하며,SQL Exception까지 직접 try-catch 해야하는 번거로움이 있다.JdbcTemplate은 이러한 작업들을 대신 처리하고, 개발자들은 애플리케이션 개발에 좀 더 집중할 수 있다. 하지만 이러한 JdbcTemplate에서도 약간의 단점이 하나 있었다.Jdbc 기술을 사용한다면 SQL 문을 개발자가 직접 작성해야 한다. 즉 SQL문이 조작될 경우, 이에 대응하기가 어렵다. 다음과 같이 특정 테이블에 데이터를 삽..
1. ExceptionResolver의 필요성 - 서블릿, WAS로 예외가 전달될 경우의 복잡함 컨트롤러에서 예외가 발생할 경우, 이 예외는 DispatcherServlet을 거쳐 Tomcat 서버인 WAS까지 전달된다.이 때, WAS는 예외가 발생한 걸 감지하고 /error (기본설정 경로이며, properties / yaml 파일로 변경 가능) 로 다시 요청을 보낸다. 그러면 해당 요청을 스프링부트에서 구현한 BasicErrorController에서 받게 된다. 사용자가 컨트롤러를 직접 구현할 때의 코드와 크게 다르지 않다. 기본적인 어노테이션 및 생성자가 존재한다.또한 HTTP 요청의 Content-Type에 따라 같은 /error 요청에 대해 다른 타입을 반환하고 있다. 1) 웹 브라우저..
1. gradlew 명령어 (build vs bootJar) gradlew bootJar는 실행가능한 jar 파일을 만드는데 필요한 작업들만 수행하고 있다. 위 그림과 같이 build 작업은 bootJar 작업 이외에도 test, check, assemble 같은 작업들이 포함된다. (check는 test에 의존적인 작업으로 test가 수행된 후에 진행됨) 따라서 이처럼 CI 워크플로우 동작시 시간차이가 발생하게 된다. 하지만 bootJar에는 test 작업이 포함되지 않는다. 모든 test를 통과해야만 실행가능한 jar 파일을 만들어야 한다면 bootJar를 test에 의존적인 작업으로 만들면 된다. 이는 build.gradle을 통해 추가할 수 있다. // build.gradle에 추가 bootJar..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.