반응형 IT/Java394 equals 와 hashCode의 재정의를 같이 해야하는 이유 먼저 아래와 같이 클래스를 정의해두고 public class Person { private final String name; public Person(String name) { this.name = name; } // intellij Generate 기능 사용 @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; return Objects.equals(name, person.name); } } person클래스에서는 equals만 재정의를 하였고 이어서 생성을 해보았다. pub.. 2022. 4. 26. com.microsoft.sqlserver.jdbc.SQLServerException: 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다. 참고 포스팅을 보면 예전 포스팅에서 TLSv1, TLSv1.1 등 Sqlserver를 사용하기 위해 Java11 버전 이상일 경우엔 셋팅을 해줘야하는것이 있었다. 하지만 maven을 돌리다보니 이상하게 똑같은 에러가 또 발생 하였다. 그리고 다시한번 Java home 경로로 가서 java.security 파일을 봐도 셋팅한것이 잘 설정 되어있다. 한참을 삽질하다가 혹시 설마 이클립스에서 자바 경로를 다른 곳을 잡고 있나? 라는 생각이 들었고 /Application/eclise.app 안의 eclipse.ini파일을 보니 java 경로를 엉뚱한 eclipse.app안의 Eclipse/plugins/org,,,, 역시 이유는 있었다. 그럼 사건의 현장으로 가서 해당 위치의 java.security 를 확인해.. 2022. 4. 22. Tomcat 서버에 springboot war파일 배포 Tomcat 폴더 안에 보면 다양한 폴더 들이 존재한다. 대표적으로 bin - 실행, 설치, 종료 등을 위한 폴더 conf - 설정 파일에 대한 폴더 log - 로그파일 폴더 lib - 라이브러리 폴더 temp - 임시파일 폴더 webapps - document 경로 폴더 등이 있다. 간단한 인터프린터 언어로 된 파일이나 스크립트 등은 webapps 폴더에 root폴더 안에 넣으면 http://ip:port/파일명 이런 식으로 브라우저에서 볼수가 있다. Spring 프로젝트를 통해서 배포를 하려면 war파일이나 jar 파일 등으로 배포가 가능한데 포스팅에서는 war 파일을 배포하는 방법에 대해서 작성해볼것이다. 먼저 pom.xml파일에 추가하도록 한다. 톰캣 의존성 추가 org.springframewor.. 2022. 4. 20. JPA 복합키 사용법 저번 포스팅에서 데이터베이스 키의 종류에 대해서 알아봤고, 예전 포스팅에서 JPA에 대해서 다뤄보았다. JPA는 ORM 기술을 사용하여 mybatis처럼 쿼리를 짜는것이 아니라 코딩으로 구현을 하는 기술인데 저번 예시에서는 단 한개의 PK를 가지는 경우에서만 예시를 들었는데, 이번엔 여러 복합키에 대해서 구현을 할때 하는 방법에 대해서 포스팅 할것이다. 먼저 복합키와 JPA의 예시가 궁금하면 아래 참고 포스팅을 확인해보도록 한다. 두가지의 방법이 있는데 개인적으로는 IdClass구현하여 사용하는것이 쉬워서 해당 방법을 다뤄볼것이다. 먼저 일반적으로 만들어둔 엔티티에서 annotation을 하나 더 추가해준다. @IdClass(key.class) 그리고 복합키로 묶일 컬럼들에 @Id라는 annotation.. 2022. 4. 2. JAVA TLS 접속 에러(The server selected protocol version TLS10,TLS11 is not accepted by client preferences) spring build를 하는데 데이터베이스에 접속 관련해서 제목과 같은 에러가 나왔다. 찾아보니 TLS 1.0 TLS1.1 로 접속을 못한다는 의미인것 같다. 자바에서 dbms로 접속하기 위함인것이라고 생각하고 JAVA_HOME경로에서 셋팅 파일을 찾아봤다. 자바 홈을 각자 위치에서 설치를 했겠지만 맥에서 자바를 새롭게 설치하거나 참고사이트처럼 설치를했다면 /Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk 위치에 있을것이다. 해당 디렉토리에서 Contents/Home/conf/security를 들어가보면 java.security 라는 파일이 있을것이다. 자바 홈 안에 Contents 폴더가 없다면 find 명령어를 통해서 자바홈 안에 java.security 파일.. 2022. 3. 31. JPA (getById / findById) 차이 JPA를 오랫동안 접하질 않아서 계속해서 새로운것을 알게되고 배워가는 재미에 요즘 빠져있다. 오늘 다뤄볼 내용은 JPA에서 repository를 통해서 id기준으로(pk일 경우) 데이터를 가져오는것에 대해서 다뤄볼것이다. 결론만 먼저 말하면 findbyid는 직접적으로 데이터베이스를 다녀오고 getbyid는 데이터베이스를 갔다오지 않는다. 둘의 차이는 데이터베이스에 접근을 직접 하느냐 안하느냐의 차이이다. 그렇기에 getbyid가 성능상 좀더 유리할수 있다. 그렇지만 언제 findbyid를 사용하느냐면 특정 id 값만 사용할 일이 있다면 getbyid가 유리하다. 이 말의 반대 의미는 다른 컬럼들을 사용을 못하기에 findbyid를 사용해서 다른 컬럼들의 값을 가져와야한다. 실제로 코드를 짜게 되면 @G.. 2022. 3. 18. Spring 에서 IOC, AOP, DI 에 대하여 이번 포스팅에서는 SPRING의 핵심요소인 IOC, AOP, DI에 대해서 다뤄볼 것이다. 다른 특징들도 많지만 이 세가지는 스프링의 장점으로 많이 알려져있다. 하나씩 다뤄보도록 해보자. IOC(Inversion of Control) 한글로 직역하면 제어의 역전이다. Spring 에서는 Container라는 개념이 있는데, 이 컨테이너는 객체를 담는 용기이다. bean의 생성부터 소멸까지 생명주기를 관리하게 된다. Container가 bean을 관리해주기에 제어의 역전이라고 한다. 쉽게 말해서 스프링컨테이너가 필요에 따라 개발자 대신에 bean을 관리해주는 행위라고 생각하면 된다. AOP(Aspect Oriented Programming) 관점 지향 프로그래밍이라는 뜻으로 객체지향(OOP)과는 또다른 의.. 2022. 3. 9. implements, extends 란? java를 사용해본 분들이라면 상속의 개념에 대해서는 들어봤을것이다. 그리고 사용해보지 않으신분들도 상속이라는게 뭔지는 알것이다. 프로그래밍언어에서 말하는 상속이란, 부모 클래스와 자식 클래스 사이에서 자식 클래스에서 부모 클래스의 기능을 가져다 쓰는것을 상속이라고 한다. 자바의 큰 특징중 하나는 OOP라는것인데, 이것은 객체지향프로그래밍의 약자이다. 객체 지향프로그래밍에서의 상속은 가장 당연하게 중요한 요소 중 하나이다. 그럼 implements랑 extends가 어떻게 다른지를 확인해보자. 둘다 사용법은 마찬가지로 클래스를 구현하면서 이어서 붙여주는 방식이다. implements 부모의 클래스를 현재 자식의 클래스 내에서 한번 재정의 해줄 필요가 있다. 우리가 아는 상속이라면 그냥 가져다 써야하는데 .. 2022. 2. 26. JDK , JRE , JVM 차이? 이번 포스팅에서는 java를 사용하게 된다면 무조건 만나게 되는 이 jdk, jre, jvm에 대해서 설명을 해볼것이다. 용어의 관계는 JDK가 JRE,JVM을 포함하고 있고, JRE는 JVM을 포함하고 있다. 그림으로 본다면 다음과 같다. 작은것부터 jvm , jre , jdk 순서대로 하나하나 소개를 해보도록 할 것이다. JVM Java Virtual Machine 의 약자로 자바의 최대 강점중 하나는 jvm 이라는 자바 가상환경 어디서든 자바 코드를 돌릴수 있다는 점이다. 그러면서 추가적으로 메모리를 효율적으로 관리 및 최적화를 해주는데 이 작업을 가비지컬렉션 이라고 하여 jvm이 메모리를 관리하는 프로세스를 지칭하는 말이다. JRE Java Runtime Environment 의 약자로 자바 클래.. 2022. 2. 24. 이전 1 ··· 37 38 39 40 41 42 43 44 다음 반응형