1️⃣ 도커 이미지 생성 1) jar 파일 생성 - 각자의 환경에 맞게 jar 파일을 build 해주면 된다. 나의 경우엔 gradle 프로젝트로 아래와 같이 build 하여 jar 파일을 생성했다. ( 프로젝트폴더/build/libs 폴더에 jar 파일 생성) gradle bootJar 2) Dockerfile 작성 - jar 파일 위치를 잡아주어야겠지만 그냥 / 하위에 옮겼다 FROM adoptopenjdk/openjdk11 #기본이미지 EXPOSE 9005 #어플리케이션이 실행 될 포트 ADD build/libs/test-0.0.1-SNAPSHOT.jar /test.jar #jar 파일 복사 ADD 호스트 위치 도커위치 적어준다. ENTRYPOINT ["java", "-jar", "/test.jar..
객체지향 프로그래밍의 기본 원칙은 캡슐화(encapsulation), 상속(inheritance), 다형성(polymorphism)이며, 이들은 소프트웨어를 보다 모듈화하고 유지보수하기 쉽게 한다. 캡슐화(Encapsulation): 캡슐화는 관련된 데이터와 메서드를 하나의 단위로 묶는 것 클래스는 데이터(속성)와 해당 데이터를 다루는 메서드(함수)를 함께 캡슐화하여 객체를 형성 캡슐화는 정보 은닉(Information Hiding)을 통해 객체의 내부 구현을 외부로부터 숨기고, 외부에서는 객체의 인터페이스를 통해 상호작용한다. 상속(Inheritance): 상속은 기존의 클래스에서 정의된 속성과 메서드를 새로운 클래스에서 재사용할 수 있도록 하는 개념 상속을 통해 코드 중복을 줄이고, 기존 클래스의 기..
회사에서 공통으로 사용 할 수 있는 메소드들을 모듈화하여 라이브러리로 제공을 해달라는 업무를 받았다. 단순히 jar파일을 제공해서 각자의 프로젝트에 포함하라고 할 수 있지만 이왕 하는 김에 maven repository를 만들어 자동으로 필요한 라이브러리들을 다운 받을 수 있도록 제공하고 싶었다. maven 저장소를 구축 할 때 Nexus라는 툴을 많이 쓰는 것 같은데..나는 이런 도움없이 만들고 싶었다. 아주 간단하게 maven 저장소를 구축해보려고 한다. 0. 사전준비 - repository를 구축 할 서버에 아래의 내용들을 설치해주자 1) java 8 이상 2) maven 3) git 4) nginx 1. 라이브러리 만들기 1) maven 프로젝트 만들기 - maven은 기본적으로 src/main/..
운영중인 서비스에서 취약성점검을 진행했는데 HTTP/2.0 프로토콜을 사용하는 경우 tomcat과 nginx의 특정버전에서 취약성이 발생하여 버전 업데이트가 필요하다는 이야기를 들었다. 그래서 http/2.0 프로토콜 사용여부에 대해서 문의가 왔다. 예..? 솔직히 HTTP/1.1 과 HTTP/2.0 이 있다는 것만 들었지 이 프로토콜을 어떻게 골라서 사용하는것인지를 몰라서 당황스러웠다.🥹🥹 어떻게...확인 하는거지...?🤔 브라우저에서 확인 해야하는걸까? 서버에서 확인 해야하는걸까..? 정답은 둘 다! 이다. 웹 브라우저와 웹서버 혹은 웹 어플리케이션 서버(WAS)에서 동시에 지원해야 HTTP/2.0 프로토콜을 사용 할 수 있다. 그렇지 않은 경우 HTTP/1.1을 사용하게 된다. 1. 웹 브라우저 -..
GPU 사용환경을 만들고 Whisper를 실행 시키니 아래와 같은 에러가 났다! ㅎㅎ! 엉엉..😭 ValueError: Expected parameter logits (Tensor of shape (1, 51865)) of distribution Categorical(logits: torch.Size([1, 51865])) to satisfy the constraint IndependentConstraint(Real(), 1), but found invalid values: tensor([[nan, nan, nan, ..., nan, nan, nan]], device='cuda:0') 그런데 whisper 모델이 아니라 다른 model을 사용하니 똑같은 gpu를 사용하는데 에러가 나지 않았다. 따라서 G..
openai에서 공개한 whisper를 학습 시킬 수 있는지에 대해서 알아보라는 임무가 떨어졌다. 앞으로 Sass 서비스에는 다른 STT 업체를 사용하지 않고 whisper를 사용할 계획이라고한다..갑자기 Java 웹개발자에게...이런 어려운 일을 시키다니..ㅎ 저는 파이썬도 할 줄 모르구요ㅠㅠ 그래도 어찌저찌 whisper를 실행시키고 학습까지 시켰는데! GPU를 이용하지 않고 CPU를 사용하고 있는것을 알게되었다. 어쩐지 너무 느리더라..🥹 인공지능과...무관한 나... 나는 당연히 GPU 가 있으면 GPU 가 사용되는 거라고 알았다ㅎㅎ 근데 그게 아니더라...ㅎ... 드라이버와 cuda를 설치해줘야한다.. cuda가 뭔데....진짜 아무런 개념이 1도 없어서 너무 어려웠다. 1. NVIDA 드라이버..
List를 조회하는 API가 있었는데, 어느날 갑자기 조회 조건대로 조회가 안되니 확인을 해달라는 연락을 받았다. 원래는 잘 되던건데...갑자기 안된다..? 범인은 나겠지🥹 Git 히스토리를 찾아보니 @NoArgsConstructor 를 추가해놓았다. 처음엔 잘 이해가 안갔다..@NoArgsConstructor를 붙였어도 @AllArgsConstructor가 있는데 왜 바인딩이 안되는거지?🤔 우선 아래와 같이 컨트롤러와 VO를 만들고 각각의 경우에 바인딩이 어떻게 되는지 확인 해보았다. (스프링에서 @ModelAttribute를 붙이지 않는 경우 적절한 전략을 사용하여 요청 파라미터를 바인딩 하므로 어노테이션을 생략했습니다.) 👉🏼 @AllArgsConstructor -> binding 🙆🏻♀️ 👉🏼 ..
- Total
- Today
- Yesterday
- 오토에버코테
- 현대오토에버
- springboot
- 자바
- java
- 자바스크립트
- javascript
- 자바코테
- Spring
- softeer
- 스프링
- 현대코테
- centos
- react
- Kubernetes
- 도커
- 현대
- 톰캣
- Linux
- 코테
- softeer java
- 쿠버네티스
- 전자정부프레임워크
- tomcat
- mysql
- 리액트
- 코딩테스트
- java 코테
- 아파치카프카
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |