스프링 프레임워크에서 의존성을 주입하는 방법 3가지 1. 생성자 주입 (Constructor Injection) 2. 필드 주입 (Field Injection) 3. 수정자 주입 (Setter Injection) 1. 생성자 주입(Constructor Injection) 1. 객체를 생성할 때 생성자를 통해 의존성을 주입하는 방식입니다. 2. 객체 생성 시점에 모든 의존성이 주입되므로, 의존성 누락이나 잘못된 순서로 주입되는 일을 방지할 수 있습니다. 3. 컴파일 타임에 의존성 주입이 일어나므로 런타임에 NullPointerException과 같은 예외가 발생할 가능성이 줄어듭니다. 4. 생성자 파라미터를 통해 어떤 의존성이 필요한지 명시적으로 표시되기 때문에 코드 가독성이 좋아집니다. 장점 1. 객체 ..
myisam innodb 차이 회사에서 myisam을 쓰고있어서 내가알던 innodb와 어떤차이가 있나 궁금해졌다. 1. MyISAM 비 - 트랜잭션-세이프 테이블을 관리한다. 항상 테이블에 ROW COUNT를 가지고 있기 때문에 SELECT명령시에 빠른속도를 자랑한다. 전체 문장 검색 능력 뿐만 아니라, 고성능 스토리지 복구 기능을 제공한다. ROW-LEVEL-LOCKING을 지원하지 못해 SELECT INSERT UPDATE DELETE시 해당 Table 전체에 Locking이 걸린다. row수가 커지면 커질수록 속도는 엄청나게 느려진다 2. InnoDB InnoDB는 모든 5.0 바이너리 배포판에 디폴트로 포함되어 있다. InnoDB 및 BDB 스토리지 엔진은 트랜잭션에 안전한 테이블을 제공하는 트..
파이썬 기초 문법 문자열 길이 구하기 - len() 문자열 슬라이싱[:] [:5] : 앞에서 부터 4번째까지 text = 'helloWorld' result = hello[:5] print(result) #결과는 hello [5:] 5번째 부터 끝까지 text = "helloWorld" result = text[5:] print(result) # 결과는 World [2:4] 2번째 부터 3번째까지 text = "helloWorld" result = text[2:4] print(result) # 결과는 ll 문자열 자르기 email = test@google.com result = email.split('@')[1].split('.')[0] print(result) # 결과는 google 리스트 a_list..
[SpringSecurity] JWT 구현 시 javax/xml/bind/DatatypeConverter Spring Security 프레임워크와 JsonWebToken 을 이용하여 웹인증을 구현하는 도중, 로그인을 시도해서 서버로부터 토큰을 얻으려고 할때, 웹서버 로그에 다음과 같은 에러가 발생했습니다. java.lang.NoClassDefFoundError: Could not initialize class javax.xml.bind.DatatypeConverterImpl 아래와 같이 dependency를 추가해준다. Maven javax.xml.bind jaxb-api 2.1 Gradle // https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api i..
[Spring] 서비스 기동 시키는 방법 3가지 1. VM OPtion -> -Dserver.port=[다른포트] 2. mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=9003' 3. mvn clean compile package java -jar -Dserver.port=9004 ./target/user-service-0.0.1-SNAPSHOT.jar 2,3번은 cmd or git-bash를 통해 실행해야함
파이썬 실행파일 만들기 직접 개발한 파이썬 코드를 실행파일로 만들어 실행 시킬 수 있는 방법입니다. pyinstaller라는 패키지를 통해 python이 없는 환경에서 실행 할 수 있게 exe파일을 만들 수 있습니다. 우선 pyinstaller를 받아줍니다. pip install pyinstaller 실행파일 만들기 pyinstaller -F main.py 이명령어를 사용하게 되면 build, dist폴더 그리고 main.spec파일이 생성되게 되는데 dist폴더에 있는 main.exe 파일을 실행시켜 보면 실행이 되는 것을 볼 수 있습니다.
파이썬 일정 시간 동안 실행 방법 알아보기 파이썬에서 일정 시간 동안 코드를 실행하는 방법은 다양합니다. 이번에는 time 모듈, datetime 모듈, threading 모듈, asyncio 모듈, sched 모듈을 사용하여 파이썬에서 일정 시간 동안 코드를 실행하는 5가지 방법에 대해 알아보겠습니다. 1. time 모듈 사용하기 time 모듈은 파이썬에서 시간을 다루는데 사용되는 모듈입니다. time 모듈의 sleep() 함수를 사용하면, 일정 시간동안 코드를 실행하지 않고 대기할 수 있습니다. 예를 들어, 아래의 코드는 5초 동안 코드를 실행하지 않고 대기합니다. import time time.sleep(5) 2. datetime 모듈 사용하기 datetime 모듈은 파이썬에서 날짜와 시간을 다루는..
파이썬 Selenium 간단한 네이버 로그인 from selenium import webdriver driver = webdriver.Chrome('chromedriver.exe 설치경로') url = 'https://naver.com' // 접속할 사이트 driver.get(url) driver.find_element_by_xpath("//a[@data-clk='log_off.login']").click() //로그인 버튼 클릭 id = '사이트 id' pw = '사이트 pw' driver.find_element_by_xpath("//input[@id='id']").send_keys(id) //id입력란에 위 id값 넣기 driver.find_element_by_xpath("//input[@id='pw..
도커 이미지 레이어 왼쪽 : 이미지 A를 지운다고 하더라도 이미지 B에서 레이어 A, B, C를 사용하고 있기 때문에 지워지지 않는다. 오른쪽 : 이미 존재하는 레이어 A, B는 새로 다운로드 받을 필요가 없음 도커 이미지 정보 확인하기 sudo docker pull nginx sudo docker inspect nginx 도커 이미지 저장소 위치 확인하기 sudo docker info sudo -i cd /var/lib/docker/overlay2 레이어 저장소 확인하기 root@server1-VirtualBox:/var/lib/docker/overlay2# ls 0cc29ea5605872d9c8291673064e85b07160203fbf04b34eeeed899731361960 # 레이어 변경 사항 저..
도커 라이프 사이클 도커 이미지 다운로드 및 삭제 sudo docker pull consol/tomcat-7.0 sudo docker rmi consol/tomcat-7.0 톰캣 컨테이너 생성 sudo docker run -d --name tc tomcat # 톰캣 생성하면서 생성 실행중인 컨테이너 확인 sudo docker ps # 톰캣 컨테이너 확인 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f6e513b399a6 tomcat "catalina.sh run" 27 seconds ago Up 26 seconds 8080/tcp tc 모든 컨테이너 확인 sudo docker ps -a # 모든 컨테이너 확인 컨테이너 중지 sudo docker stop..