컴퓨터를 포맷하게 되면서 모든 세팅을 새롭해 해야했다.그러면서 db파일 세팅, 데이터 넣기 등 다 하나하나 설정을 해줘야 했다.프로그램이 실행될 때 mysql 데이터베이스 파일과 더미데이터를 자동으로 넣고 싶었다. 결론은 Docker를 실행할 때 mysql 데이터베이스 파일을 만들고 더미데이터를 넣는 것으로 해결했다. mysql.yml 파일을 만들어서 두고더보기version: '3'services: mysql: image: mysql:latest container_name: my-mysql restart: always environment: MYSQL_ROOT_PASSWORD: 1234 ports: - "3306:3306" volumes: ..
분류 전체보기
UserServiceDockerfile 파일 만들기 DockerfileFROM openjdk:17-ea-jdk-slim#tmp 디렉토리 생성VOLUME /tmp# 복사를 할 때 docker파일이 포함되어 있는 디렉토리나 파일을 복사해야한다.COPY target/user-service-1.0.jar UserService.jar# ENTRYPOINT :이미지가 실행될 때 어떤 커맨드를 가지고 할 것인지# 명령을 입력할 때 공백을 리스트 형태롤 앞에 bracket하고 여러 개 나눠서 입력ENTRYPOINT ["java","-jar","UserService.jar"] 터미널UserService 프로젝트를 인텔리제이에서 하면 컴파일 해준다.하지만 따로 cmd를 켜서 할 경우, 컴파일을 수동으로 해주면 된다.테..
에러 상황 Git bash에서 mysql에 들어가려고 했지만 아래처럼 오류가 뜬다.the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty' 이 오류는 일반적으로 Window환경에서 Git bash 또는 Cygwin과 같은 Unix 호환 쉘을 사용할 때 나타난다.특히, docker, kubectl, 또는 mysql과 같은 상호작용이 필요한 CLI 프로그램을 실행할 때 발생할 수 있다.이 메시지는 터미널이 TTY(Teletypewriter)를 인식하지 못한다는 것을 의미한다. 💡 TTY(Teletypewriter)원래 물리적인 전신 타자기를 의미하지만, 현대 컴퓨팅에서는 터미널 인터페이..
Collections Framework💡Collections vs. Collection- Collections : util 클래스Collections.sort(list); - Collection : 인터페이스 Collections컬렉션을 위한 메서드(static)를 제공💡 유용한 static 메서드를 제공하는 클래스- Object : 객체- Arrays : 배열- Collections : 컬렉션 List* ArrayList연속적인 배열장점 : 구조가 간단하고 데이터를 읽는 데 걸리는 시간이(접근 시간, access time)이 짧다.단점 :- 크기를 변경할 수 없다.(크기를 변경해야 하는 경우 새로운 배열을 생성 후 데이터를 복사해야함.크기 변경을 피하기 위해 충분히 큰 배열을 생성하면..
Iterator :컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것ListIterator : Iterator에 양방향 조회기능 추가(List를 구현한 경우만 사용가능)Enumeration : Iterator의 구버전 컬렉션들의 구조가 다 달라 읽어오는 방법도 다 다르지만, Iterator를 통해 표준화하여 읽어올 수 있게 한다. ex)List를 Set으로 변환하고 나서 읽어올 때, Iterator를 사용하면 읽어오는 코드를 바꾸지 않고 읽어올 수 있다. 메서드설명boolean hashNext()읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false 반환Object next()다음 요소를 읽어온다. next()를 호출하기 전에 hashNext()를 호출해서 읽어올 요소가 있는지 확인..
DS vs. ADTADT(Abstract Data Tpye, 추상 데이터 타입)- 추상화- 데이터 타입을 정의만 하고 실제 구현에 대해선 논의 하지 않는다.- 정의와 구현을 분리하면 사용자는 굳이 어떻게 만들어 지는지를 몰라도 사용하는데 아무런 문제가 없다.- 사용자는 ADT에서 정의된 기능을 이옹 하기만 하면 되고 구현은 개발자가 알아서 하면 된다.- 기능 개선을 위해서 구현 방법이 바뀌어도 정의만 그대로 라면 기존 사용자는 아무런 변경없이 동일하게 이용이 가능하다 이런게 일반적인 추상화의 장점이다. DS(Data Structure, 자료 구조)내부 구현 예시자바에 비유하자면인터페이스 → ADT 클래스 → DS 참고링크https://www.youtube.com/watch?v=QcsQKgXemtA
Array 비슷한 용어 정리Arrays클래스java.util.Arrays 클래스는 배열을 다루기 위한 다양한 정적 메서드를 제공한다.이 클래스는 배열의 정렬, 검색, 비교 및 변환과 관련된 메서드를 포함하고 있다.주요 메서드:sort(): 배열을 정렬binarySearch(): 배열에서 이진 검색을 수행한다.equals(): 두 배열이 동일한지 비교한다.fill(): 배열을 특정 값으로 채운다.asList(): 배열을 List로 변환한다. int[] numbers = {5, 3, 8, 1};Arrays.sort(numbers);System.out.println(Arrays.toString(numbers)); // [1, 3, 5, 8] ArrayList 클래스java.util.ArrayList는 Lis..
API(Application Programming Interface)소프트웨어 프로그램이 다른 소프트웨어 프로그램으로 데이터를 전송할 수 있도록 하는 규칙 집합이다. 쉽게말해, 필요한 서비스를 얻기 위해 다른 프로그램과 소통할 수 있도록 하는 인터페이스(메신저 역할) 이자,주고 받을 수 있는 데이터의 형식을 정하는 규격(매뉴얼)이라고 볼 수 있다. API종류접근 방식에 따른 API 종류1. Private API내부 API로, 기업이나 연구단체 등에서 자체 제품과 운영 개선을 위해 단체 내부에서만 사용한다.제 3자에게 노출되지 않는다. 2. Public API개방형 API로, 모두에게 공개된다.Public API 중에서도 접속하는 대상에 대한 제약이 없는 경우에는 Open API라고 한다. 오픈 API ..
애플리케이션 배포를 위한 컨테이너 가상화(Docker 컨테이너) Virtualization Docker Virtualization Docker Image한 서버에서 여러 개의 컨테이너를 실행할 수 있다.💡 Image컨테이너가 실행에 필요한 설정값/정보를 가지고 있는 것💡 Registry이미지가 저장될 수 있는 저장소.Public Registry로 많이 사용되는 사이트로를 Docker Hub 사이트가 있다.Private Registry를 운영할 수도 있다. 간단한 서버를 하나 기동해서 Private Registry를 운영할 수도 있다. Dockerfile -p 3306:3306-p : 포트 포워딩을 하겠다앞 3306 : 호스트 pc에서 접근하고자 하는 포트번호뒤 3306 : 컨테이너에..
에러 상황사용자가 도서를 등록할 때, 도서 제목만 입력해도 관련 도서명이 검색되도록 하고 싶었다.도서 DB가 필요했다.도서 목록은 알라딘 등 다양한 도서 구매 사이트에서 엑셀로 제공해주었다. 엑셀 파일을 csv파일로 바꾸고 doker에 등록해둔 mysql로 도서 DB를 넣고자 했다. 먼저 파일에 대한 테이블을 만들고 이 안에 데이터를 넣으면 된다.CREATE TABLE book ( PRIMARY KEY (순번), 순번 INT, 구분 VARCHAR(20), 상품명 VARCHAR(255), ItemId VARCHAR(20)..