![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/NO396/btsFR8QGeKM/XFx1Zfm3rj5LjVTJ6kQ5c0/img.png)
Mysql 설치 sudo apt-get update sudo apt-get install mysql-server Mysql 접속 및 비밀번호 설정 - root로 접속 한 뒤 비밀번호 초기화를 해준다 1. root로 접속 $ sudo mysql -u root -p - 위 명령어를 입력하는 경우 "Enter password" 라고 나오는데 이때는 enter를 쳐주면 된다. 엔터를 입력하면 아래와 같이 mysql에 접속 된 것을 확인 할 수 있다. 2. user 정보 확인하기 - root의 경우에 plugin이 auto_socket으로 되어있는 것을 볼 수 있는데 이걸 mysql_native_password로 변경해주면서 새로운 비밀번호를 설정해주어야 한다. mysql> select user, Host, pl..
객체지향 프로그래밍의 기본 원칙은 캡슐화(encapsulation), 상속(inheritance), 다형성(polymorphism)이며, 이들은 소프트웨어를 보다 모듈화하고 유지보수하기 쉽게 한다. 캡슐화(Encapsulation): 캡슐화는 관련된 데이터와 메서드를 하나의 단위로 묶는 것 클래스는 데이터(속성)와 해당 데이터를 다루는 메서드(함수)를 함께 캡슐화하여 객체를 형성 캡슐화는 정보 은닉(Information Hiding)을 통해 객체의 내부 구현을 외부로부터 숨기고, 외부에서는 객체의 인터페이스를 통해 상호작용한다. 상속(Inheritance): 상속은 기존의 클래스에서 정의된 속성과 메서드를 새로운 클래스에서 재사용할 수 있도록 하는 개념 상속을 통해 코드 중복을 줄이고, 기존 클래스의 기..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b2Xhu2/btsB4VaFZnM/P5Wyub7mV3uxQuwNYre5xK/img.png)
회사에서 공통으로 사용 할 수 있는 메소드들을 모듈화하여 라이브러리로 제공을 해달라는 업무를 받았다. 단순히 jar파일을 제공해서 각자의 프로젝트에 포함하라고 할 수 있지만 이왕 하는 김에 maven repository를 만들어 자동으로 필요한 라이브러리들을 다운 받을 수 있도록 제공하고 싶었다. maven 저장소를 구축 할 때 Nexus라는 툴을 많이 쓰는 것 같은데..나는 이런 도움없이 만들고 싶었다. 아주 간단하게 maven 저장소를 구축해보려고 한다. 0. 사전준비 - repository를 구축 할 서버에 아래의 내용들을 설치해주자 1) java 8 이상 2) maven 3) git 4) nginx 1. 라이브러리 만들기 1) maven 프로젝트 만들기 - maven은 기본적으로 src/main/..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/vbe5a/btsyNpx0KTS/BZ4kGKxTvw8pYtFAoQQ5a0/img.png)
운영중인 서비스에서 취약성점검을 진행했는데 HTTP/2.0 프로토콜을 사용하는 경우 tomcat과 nginx의 특정버전에서 취약성이 발생하여 버전 업데이트가 필요하다는 이야기를 들었다. 그래서 http/2.0 프로토콜 사용여부에 대해서 문의가 왔다. 예..? 솔직히 HTTP/1.1 과 HTTP/2.0 이 있다는 것만 들었지 이 프로토콜을 어떻게 골라서 사용하는것인지를 몰라서 당황스러웠다.🥹🥹 어떻게...확인 하는거지...?🤔 브라우저에서 확인 해야하는걸까? 서버에서 확인 해야하는걸까..? 정답은 둘 다! 이다. 웹 브라우저와 웹서버 혹은 웹 어플리케이션 서버(WAS)에서 동시에 지원해야 HTTP/2.0 프로토콜을 사용 할 수 있다. 그렇지 않은 경우 HTTP/1.1을 사용하게 된다. 1. 웹 브라우저 -..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cZWZia/btstKYAfnqy/91MuR3Tn9rbOkO6jwiOOr0/img.png)
List를 조회하는 API가 있었는데, 어느날 갑자기 조회 조건대로 조회가 안되니 확인을 해달라는 연락을 받았다. 원래는 잘 되던건데...갑자기 안된다..? 범인은 나겠지🥹 Git 히스토리를 찾아보니 @NoArgsConstructor 를 추가해놓았다. 처음엔 잘 이해가 안갔다..@NoArgsConstructor를 붙였어도 @AllArgsConstructor가 있는데 왜 바인딩이 안되는거지?🤔 우선 아래와 같이 컨트롤러와 VO를 만들고 각각의 경우에 바인딩이 어떻게 되는지 확인 해보았다. (스프링에서 @ModelAttribute를 붙이지 않는 경우 적절한 전략을 사용하여 요청 파라미터를 바인딩 하므로 어노테이션을 생략했습니다.) 👉🏼 @AllArgsConstructor -> binding 🙆🏻♀️ 👉🏼 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/di1vmM/btstM23lpVu/e5X3m4ZDAAXhC3UEZ9MNWK/img.png)
Pageable 인터페이스를 구현한 PageRequest를 사용하면 페이징 처리를 간단하게 할 수 있다. 1️⃣ 페이징 처리에 필요한 정보를 담고 있는 Class 생성 - 페이징 처리를 여러곳에서 하기 때문에 페이징 처리 정보를 담고 있는 클래스를 생성하여 해당 클래스를 상속 받아서 사용 할 수 있도록 한다. - pageRequest의 page 인덱스, 크기, 정렬을 인자로 받는 메소드를 사용 public class Search { private int page = 1; private int size = 10; private String[] sort = {}; public void setPage(int page) { this.page = page MAX_SIZE ? DEFAULT_SIZE : size; ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/s6gSm/btstxnsTmKH/0jdFVvVHD1xQkaOKl2gp4K/img.png)
이번에 새로운 프로젝트를 진행하면서 필요한 기능 중 하나는 사용자로부터 반복 주기를 받아 그 때마다 특정 동작을 반복으로 실행시켜주어야 하는 기능이 있었다.이를 위해 1️⃣스케쥴러가 동적으로 생성되어야 하고 2️⃣ 이중화 환경을 고려하여 스케쥴러는 여러개의 서버 중에 한대에서만 실행이 되어야한다. 사실 스케쥴러가 서버 실행 전에 정해져있다면 아래 처럼 shedlock 어노테이션으로 쉽게 스케쥴러 이중화를 할 수 있다.그렇지만 동적으로 생성하는 스케쥴러에는..어노테이션을 붙일 수 가 없다.@Component@Slf4jpublic class TestScheduler { @Scheduled(cron = "0 0 0 * * *") @SchedulerLock(name="registerScheduler..
- Total
- Today
- Yesterday
- 도커
- 오토에버코테
- softeer java
- 코딩테스트
- 코테
- Linux
- 쿠버네티스
- 스프링
- java 코테
- java
- 자바
- 아파치카프카
- Spring
- softeer
- 전자정부프레임워크
- javascript
- 현대
- centos
- 현대오토에버
- 톰캣
- 리액트
- tomcat
- Kubernetes
- react
- Docker
- 현대코테
- springboot
- 자바스크립트
- 자바코테
- mysql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |