본문 바로가기

전체 글127

[DevOps] Jenkins로 중단 배포 https://ghan2.tistory.com/129 [Docker] Mysql 도커로 띄우기https://ghan2.tistory.com/127 [DevOps] Nginx 도커로 띄우기, 왜 Docker인가?https://ghan2.tistory.com/125 [DevOps] Apache와 Spring Boot 연결1. 왜 Apache와 Spring Boot를 연결할까?Spring Boot는 기본적으로 내장 톰캣을 사용한다.ghan2.tistory.com 지난 포스팅에서는 개발을 위한 데이터베이스를 띄워봤다.이제 젠킨스로 무중단 배포 환경을 구성하기 이전에,중단하고 배포하는 중단배포(?)를 먼저 해보려고 한다. Docker로 Jenkins 설치mkdir -p /home/jenkins_homedocke.. 2025. 8. 3.
[Docker] Mysql 도커로 띄우기 https://ghan2.tistory.com/127 [DevOps] Nginx 도커로 띄우기, 왜 Docker인가?https://ghan2.tistory.com/125 [DevOps] Apache와 Spring Boot 연결1. 왜 Apache와 Spring Boot를 연결할까?Spring Boot는 기본적으로 내장 톰캣을 사용한다. (처음에 스프링 부트로 설정해놓고 톰캣에 띄우려고 해서 애ghan2.tistory.com 저번주에는 도커를 사용해서 웹 서버와 어플리케이션을 올렸고이제 개발을 위한 데이터베이스를 띄워보려고 한다. 무료고 접근성이 좋은 mysql로 선택했다. 데이터 저장용 디렉토리 만들기sudo mkdir -p /data/mysql sudo chown -R 999:999 /data/mys.. 2025. 7. 28.
[DevOps] Nginx 도커로 띄우기, 왜 Docker인가? https://ghan2.tistory.com/125 [DevOps] Apache와 Spring Boot 연결1. 왜 Apache와 Spring Boot를 연결할까?Spring Boot는 기본적으로 내장 톰캣을 사용한다. (처음에 스프링 부트로 설정해놓고 톰캣에 띄우려고 해서 애를 먹었다...)하지만 직접 8080 포트를 열어두고 운영ghan2.tistory.com Apache와 Spring boot를 연결했던 이전 실습처럼, Nginx와 Spring boot 자체를 연동하는 것도 크게 어렵지는 않았다. (아주 기본적인 설정으로만 해서지만...) 그 후로 해보려 했던 것이 도커였는데 막상 시작하려고 하니 도커를 왜 써야 하지?? 라는 의문이 들었다. 직접 해봐야 느끼는 것들이 있겠지만..기본적으로 도커를.. 2025. 7. 20.
[DevOps] Apache와 Nginx 차이 https://ghan2.tistory.com/125 [DevOps] Apache와 Spring Boot 연결1. 왜 Apache와 Spring Boot를 연결할까?Spring Boot는 기본적으로 내장 톰캣을 사용한다. (처음에 스프링 부트로 설정해놓고 톰캣에 띄우려고 해서 애를 먹었다...)하지만 직접 8080 포트를 열어두고 운영ghan2.tistory.com 지난 실습으로 아파치와 스프링 부트를 연결해서 서버에 접속해보았다. 현재 웹 서버로는 nginx가 많이 쓰이는 추세인데 아파치부터 실습을 해보는 걸 추천하셔서 공부하게됐다.웹 서버 하면 apache와 nginx를 많이 들어왔는데 둘의 차이점은 무엇이고 왜 nginx가 많이 쓰이고 있을까? # 기본 개념- Apache: 1995년부터 이어온 전.. 2025. 7. 4.
[DevOps] Apache와 Spring Boot 연결 1. 왜 Apache와 Spring Boot를 연결할까?Spring Boot는 기본적으로 내장 톰캣을 사용한다. (처음에 스프링 부트로 설정해놓고 톰캣에 띄우려고 해서 애를 먹었다...)하지만 직접 8080 포트를 열어두고 운영하기엔 불편하거나 위험할 수 있어 아파치를 통해 들어오도록 하여 톰캣에 올린 웹 서비스의 서버 ip를 외부 사용자로부터 감춘다. 또한 로드밸런싱 기능으로 트래픽 분산을 하여 서버의 가용성을 유지할 수 있다. ➡️ 오늘 실습에서는 Apache를 앞단에 두고, Spring Boot를 프록시 연결해 보았다. 2. 실습 환경사용한 운영체제: Ubuntu (홈서버)Apache 설치 방식: 소스 수동 빌드 (/usr/local/apache2)Spring Boot 앱 실행 방식: JAR 실행 .. 2025. 7. 1.
[모던 자바 인 액션] Chapter 13. 디폴트 메서드 💡 이 장의 내용- 디폴트 메서드란 무엇인가?- 진화하는 API가 호환성을 유지하는 방법- 디폴트 메서드의 활용 패턴- 해결 규칙 이 장은 디폴트 메서드에 대해 설명한다. 디폴트 메서드란 무엇일까?디폴트 메서드는 인터페이스 안에서 쓰이는데, 나오게 된 배경을 알면 더 이해가 쉽다. 디폴트 메서드는 인터페이스를 고칠 때 확장성을 제공하기 위해 만들어졌다고 볼 수 있다. 정확히 말하면 인터페이스를 수저어할 때 이전에 해당 인터페이스를 구현했던 모든 클래스의 구현을 고치지 않고 새로운 기능을 추가할 수 있게 하려고 만들어진 것이다. ++같은 기능을 하는 정적 메서드도 있다. 디폴트 메서드정적 메서드선언 위치인터페이스 안에 선언인터페이스 안에 선언default 키워드 필요필요함필요 없음 (static만 쓰.. 2025. 5. 2.
[모던 자바 인 액션] Chapter 12. 새로운 날짜와 시간 API 💡 이 장의 내용- 자바 8에서 새로운 날짜와 시간 라이브러리를 제공하는 이유- 사람이나 기계가 이해할 수 있는 날짜와 시간 표현 방법- 시간의 양 정의하기- 날짜 조작, 포매팅, 파싱- 시간대와 캘린더 다루기 이번 장은 제목부터 기대가 된다. 그동안 자바로 날짜 정보를 처리하면서 애를 먹었던 적이 많다.  들어가며..자바 1.0에서는 java.util.Date 클래스 하나로 날짜와 시간 관련 기능을 제공했다. 결과가 직관적이지 않았고 스트링으로 반환되는 문자열을 추가로 활용하기가 어렵다. 12.1 LocalDate, LocalTime, Instant, Duration, Period 클래스 12.1.1 LocalDate와 LocalTime의 사용LocalDate- 시간을 제외한 날짜를 표현하는 불변 객.. 2025. 1. 12.
[JavaScript] event.target 과 event.currentTarget 차이 See the Pen Untitled by 이가은 (@wymdzlvu-the-looper) on CodePen. 위 예제에서는 사용자가 버튼을 클릭하게 되면 event.target은 실제 클릭한 버튼을 가리키고, event.currentTarget은 실제 이벤트가 걸려있는 컨테이너 DIV를 가리키게 된다. 1.event.target: 이벤트가 처음으로 발생한 원본 요소를 참조이벤트가 트리거된 실제 요소를 반환이벤트가 버블링되거나 캡처링될 때도 처음 발생한 요소를 유지한다.2.event.currentTarget: 현재 이벤트 핸들러가 부착된 요소를 참조이벤트 핸들러가 실행되는 동안 이벤트를 청취하고 있는 요소를 반환한다.this와 유사하게 동작하며, 핸들러가 연결된 요소를 보장한다. Item 1 .. 2024. 11. 27.
[JQuery] remove(), detach(), empty() 메서드 차이점 1. remove()선택한 요소와 해당 요소의 자식 요소를 DOM에서 제거한다. 요소와 그에 연결된 이벤트 핸들러도 함께 삭제된다. $("#id").remove();완전히 제거되므로 메모리에서 해당 요소를 복구할 수 없다. 2. detach()선택한 요소와 자식 요소를 DOM에서 제거하지만 메모리 상에서 데이터와 이벤트는 유지된다. 나중에 같은 요소를 다시 DOM에 추가해야 할 경우 유용하다.let element = $("#id").detach();$("body").append(element);이벤트 핸들러나 데이터를 보존해야 하는 경우 사용하면 좋다. 3. empty()선택한 요소의 자식 요소만 제거한다. 선택한 요소 자체는 유지된다.요소 안의 내용만 삭제하고 선택한 요소의 이벤트 핸들러나 데이.. 2024. 11. 26.