본문 바로가기
728x90
반응형

Back-end/JAVA & Spring135

[Java] 트랜잭션 처리하기 트랜잭션이란? 트랜잭션(Transaction)이란 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다. A가 B에게 만원을 송금한다고 가정한다. 먼저 A의 통장에서 만원을 인출하고, B의 통장에 만원을 입금해야 한다. 이때, 인출과 입금의 두가지 일이 합쳐져 '송금'이라는 하나의 논리적 기능을 이루는 것이다. 트랜잭션의 성질(ACID) 원자성(Atomicity) 트랜잭션은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 한다 예) 송금 과정에서 A에게서 만원을 인출했지만 B에게 만원을 입금하지 않는 경우가 발생하면 안된다 일관성(Consistency) 트랜잭션이 성공적으로 완료되면 일관적인 데이터를 유지한다 독립성(Isolation) 둘 이상의 트랜잭션이 동시에 .. 2021. 4. 27.
[Spring] Quartz 라이브러리를 이용한 스케쥴러 설정 스케줄러 - 주기적으로 매일, 매주, 매월 등 주기적으로 특정한 프로그램을 실행하기 위한 것 - Spring의 경우는 Spring-batch 혹은 Quartz 라이브러리를 이용하면 프로그램이 실행되는 동안 주기적인 스케줄링이 가능하다. Spring에서 Quartz 라이브러리 설정 1. pom.xml org.quartz-scheduler quartz 2.3.0 org.quartz-scheduler quartz-jobs 2.3.0 - quartz와 quartz-jobs 디펜던시 등록. 2. root-context.xml 의 namepace에서 task 항목을 체크! - task:annotation-driven 태그 추가 - 스케줄러가 실행될 컨트롤러가 속한 패키지를 component-scan 처리한다. 3... 2021. 4. 27.
이클립스 디버그 모드 사용하기 이클립스에는 디버그 모드라는 것이 있다. 디버그 모드란 사용자가 좀 더 쉽게 디버깅을 할 수 있도록 도와주는 기능이다. 디버그 모드를 사용해보면 어디서 에러가 발생하는지를 좀 더 쉽게 알 수 있다. 그러면 디버그 모드를 사용하는 방법을 알아보자. 디버그 모드 사용하기 디버그를 하려면 우선 브레이크 포인트를 걸어야 한다. 브레이크 포인트란 코드가 실행되다가 일시적으로 멈추게 되는 지점이다. 이 지점부터 사용자가 순차적으로 코드를 진행시키며 코드를 분석할 수 있다. 소스 코드 좌측을 보면 숫자 옆에 빈 공간이 있다. 이 부분에 더블클릭을 하여 브레이크 포인트를 지정할 수 있다. 브레이크 포인트가 걸리면 위처럼 작은 아이콘이 나타난다. 여기가 디버그 시작점이다. 이렇게 브레이크 포인트를 걸고 난 뒤 디버그 모.. 2021. 4. 27.
[Spring] 메이븐(Maven)이란? * Maven - Spring 프레임 워크 기반의 프로젝트를 진행하려 spring에 대해서 알아보던 중 maven을 프로젝트에 추가해야 할 필요성을 느꼈다. 그럼 메이븐이란 무엇인가? - 프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는 것이 아니라 많은 라이브러리들을 활용해서 개발을 한다. 이때 라이브러리들의 수가 수십개가 넘는 일이 발생하곤 하는데, 라이브러리들이 많아지면 관리가 힘들어지게 된다. 이때 필요한게 메이븐이다. - 메이븐은 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다. - 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다.. 2021. 4. 20.
[Maven] Nexus란? Nexus란? Sonatype 에서 만든 저장소 관리자 프로젝트 다양한 Format의 사설 저장소를 만들 수 있으며 메인 저장소를 Cache 할 수 있는 기능 또한 제공하여 저장소를 관리할 수 있도록 도와주는 관리자 도구 Maven 에서 사용할 수 있는 가장 널리 사용되는 무료 저장소 1️⃣ 필요성 사설 리포지토리가 왜 필요할까? 회사/단체의 화이트 리스트로 인해 외부 리포지토리에 접속하기 어려운 경우 Proxy 역할 특히 비상시 외부 인터넷이 느리거나 리포지토리가 다운되는 등 여러 상황에서도 빠르게 받을 수 있음 현재 Maven에 올라와 있지 않은 자료들은 효율적으로 관리하기 위하여 한번 다운로드 받은 dependency는 로컬에 저장되어서 협업 시 다른 PC에도 설치해야 함 서버에도 동일한 설정들을 .. 2021. 4. 20.
[Spring] 양방향 암호화_AES256 아이디와 비밀번호 암호화하기 [해야 할 일] (0) 라이브러리 설치 (1) ID와 비밀번호를 입력받을 View 생성 (2) AES256의 서비스 클래스 생성 (3) 서비스 클래스를 사용할 Controller 생성 (4) servlet-context.xml에 서비스 클래스 빈 등록 (5) 결과 응답 View 생성 (6) home.jsp에서 인덱스 생성 (0) 라이브러리 설치 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 에 접속해서 jce8을 다운로드한다. Accept License Agreement 후 Download. 압축을 풀면, 이 두 Jar 파일이 나온다. (0)-1 Build Path - Con.. 2021. 4. 20.
[Java] equals와 ==의 차이점 equals와 == 은 어떤 차이점이 있을까요. 기본적으로 이 둘은 모두 양 쪽에 있는 내용을 비교한 값을 boolean type으로 반환한다는 공통점을 가집니다. 하지만 차이점이 분명 존재합니다. 1) 형태의 차이 가장 단순한 차이점은 형태의 차이입니다. equals () 는 메소드 입니다. 객체끼리 내용을 비교할 수 있도록 합니다. == 은 비교를 위한 연산자 입니다. 2) 주소값 비교와 내용 비교 차이점이라 말할만한 내용으로는, 비교할 수 있는 대상에 대한 부분입니다. equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만, == 연산자는 비교하고자 하는 대상의 주소값을 비교합니다. 주소값이라는 것은 확실하게 집주소나 이메일주소처럼 확정적으로 정해져서 보여지는 것은 아니지만 대상을 구별.. 2021. 4. 16.
[이클립스 오류] 서버 시작 타임아웃(Timeout) 오류 해결법 가끔 이클립스(Eclipse) 개발 환경에서 자바(Java) 개발을 하다 보면, 45초 서버 실행(Server Start) 제한 때문에 오류가 발생할 때가 있습니다. 45초 이내에 서버가 시작이 안 되면 문제가 있다고 보기 때문이에요. 다만 서버에 이것저것 라이브러리를 추가하다 보니까 어쩔 수 없이 서버가 실행되기까지 45초가 넘어가는 경우도 존재합니다. 그럴 때 45초 제한을 해제하는 방법을 알려드리고자 합니다. 오류 메시지: Server Tomcat v8.5 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server edi.. 2021. 4. 16.
이클립스 웹프로젝트(WAR파일) Import, Export 하기 웹프로젝트(WAR파일) Export 먼저 Export할 웹 프로젝트를 선택한다. 그리고 마우스 우클릭을 하여 [Export] - [WAR file] 메뉴를 선택한다. 그러면 Export 화면이 나타난다. 우선 Browser 버튼을 클릭해 내보낼 경로를 지정한다. 다음으로 Export source file에 체크를 한다. 체크를 하지 않는다면 Export시 Java 파일들이 포함되지 않는다. 그렇기에 꼭 체크를 해줘야 한다. 그리고 나서 Finish를 클릭하면 Export가 된다. 웹프로젝트(WAR파일) Import 이클립스 상단에 있는 File 메뉴를 클릭한다. 나타나는 하위 메뉴 중 Import를 클릭한다. Import 창이 나타나면 [Web] - [WAR file]를 클릭하고 Next를 누른다. 다음.. 2021. 4. 16.
728x90
반응형