본문 바로가기
728x90
반응형

View All61

[Lombok] @NoArgsConstructor, @AllArgsConstructor, @RequireArgsConstructor Lombok에서 제공하는 기능 중 가장 대표적인 @Date, @Getter, @Setter 외에도 생성자를 자동 생성 해주는 @NoArgsConstructor, @AllArgsConstructor, @RequrieArgsConstructor에 대해 어떤것을 의미하는지 알아보자. @NoArgsConstructor 파라미터가 없는 기본 생성자를 생성한다. @AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자를 생성한다. @RequireArgsConstructor final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 생성한다. 예제 @NoArgsConstructor @AllArgsConstructor @RequireArgsConstructor public class User.. 2021. 10. 27.
[Java] 깊은복사와 얕은복사(Call By Value & Call By Reference) 자바를 떠나서 프로그래밍을 하다 보면 꼭 알아야할 개념 중 하나인 Call By Value, Call By Reference에 대해 알아보자. Call By Value 값을 호출 하는것을 의미하며 전달 받은 값을 복사하여 처리한다. 전달 받은 값을 변경하여도 원본은 변경되지 않는다. Call By Reference 참조에 의한 호출을 의미하며, 전달 받은 값을 직접 참조한다. 전달 받은 값을 변경할 경우 원본도 같이 변경이 된다. 그렇다면 자바에서의 Call By Value와 Call By Reference는 어떻게 적용이 될까? 기본 자료형 변수가 파라미터 → 값 (깊은 복사) Array, List 등의 변수가 파라미터 → 주소(얕은 복사) 아직 정확하게 깊은 복사와 얕은 복사가 어떤 건지 이해가 안되.. 2021. 10. 27.
[Java] 압축 파일 jar vs war java를 사용하다보면 jar파일과 war파일이 존재한다는 것을 알 수 있다. 하지만 이 둘의 차이점은 명확히 모르고 있었다. jar와 war가 의미하는 바를 알아보자. jar, war java 기반의 application의 배포 형태이다. java tar tool을 이용하여 압축한 압축 파일이다. (jar와 war는 압축 형태의 파일이다.) jar와 war는 사용 목적이 다르다. jar Java ARchive path 정보를 유지한 상태로 압축한다. 자바 클래스 파일과 각 클래스들이 사용하는 리소스 파일 및 메타 데이터를 압축한 파일이다. 실제로는 ZIP 파일 포맷으로 압축된 파일이다. war Web application ARchive 웹 어플리케이션을 어떻게 설정할 지에 대한 정의가 있는 web.xm.. 2021. 10. 18.
[MySQL] - 위도, 경도를 통해 특정 거리안에 위치 구하기 구글 지도를 열고 한 지점을 선택하면 해당 위치의 '위도'와 '경도'가 나온다. 이처럼 기준 위도, 경도와 특정 위치의 위도, 경도를 가지고 기준점에서의 거리를 mysql을 통해 구할 수 있다. 현재위치 위도 : mylat 경도 : mylng 지정 위치 위도 : pointlat 경도 : pointlng SELECT ( 6371*acos(cos(radians(mylat))*cos(radians(pointlat))*cos(radians(pointlng) -radians(mylng))+sin(radians(mylat))*sin(radians(pointlat))) ) AS distance FROM 테이블 HAVING distance 2021. 10. 15.
[Infra] - 빌드의 자동화를 위한 Jenkins(젠킨스) 오늘은 개발을 위한 빌드부터 배포까지 자동화 해주는 Jenkins에 대해 간략하게 알아보려고한다. 개발자가 서버에 기능을 추가하려면 먼저, 개발자의 PC를 통해 개발을 하고 테스트까지 한 뒤, 이상이 없다고 판단이 되면 사용자가 사용할 수 있게 수정된 내용을 서버에 반영을 한다. 여기서 서버에 반영하는 것을 배포(Deploy)라고 하며, 배포 하기 위한 준비 과정을 빌드(Build)라고 한다. 빌드의 자동화? 위에서 설명 된 것 처럼 빌드는 서버에 올릴 수 있는 상태로 만드는 것을 의미한다. 그렇다면 빌드는 하루에 한번을 할 수 있으며, 안할 수도 있지만 1주일, 1달로 계산하면 꽤 많이 하게된다. 그리고 이 시간이 점차 늘어나 1년으로 된다면 상당히 많은 시간이라고 할 수 있다. 예를 들어 예전에는 J.. 2021. 10. 13.
[MyBatis] if - else 사용하기 (choose) 먼저 Mybatis 에서는 단일if문은 제공하지만, if~else if 문을 사용할 수가 없다. 하지만 문을 if ~ else if 문 처럼 사용이 가능하다. 예제1. 조건이 단일(1개) 일 때 위에 조건이 맞을시 실행할 구문 조건1이 틀릴경우 실행할 구문 예제2. 조건이 여러개(N개) 일 때 위에 조건이 맞을시 실행할 구문 위에 조건이 맞을시 실행할 구문 위에 조건이 맞을시 실행할 구문 조건1, 조건2, 조건3이 틀릴경우 실행할 구문 예제3. 조건에서 연산자(and, or) 사용 위에 조건이 맞을시 실행할 구문 위에 조건이 맞을시 실행할 구문 위 조건이 전부 틀릴경우 실행할 구문 2021. 10. 12.
728x90
반응형