전체 글
-
[Java] 매개변수(Parameter)와 인수(Argument)Programming/Java 2021. 7. 22. 00:32
항상 인자, 인수, 매개변수 등등 언어들의 차이를 무시하고 혼용하며 사용해 왔다. 이번 기회에 간단히 차이점을 알아보고 정리해두려 한다. public int add (int a, int b) { return a + b; } 평범한 java 메소드이다. a와 b를 단순히 더하기 위한 용도로 선언하였다. 여기서 int a와 int b가 나타내는 것은 매개변수를 의미하는 Parameter이다. add(3, 4); 위에서 선언한 add 메소드를 실행한 문장이다. 여기서 3, 4는 인수를 의미하는 Argument이다. argument는 실제 메소드가 호출될 때 매개변수에 담기는 값이다.
-
[JAVA] Arrays.asList()Programming/Java 2021. 7. 18. 16:50
java.util.Arrays에는 배열을 조작하기 위한 static method들이 모여 있다. Arrays (Java SE 11 & JDK 11 ) Compares two int arrays lexicographically over the specified ranges. If the two arrays, over the specified ranges, share a common prefix then the lexicographic comparison is the result of comparing two elements, as if by Integer.compare(int, int), at a rel docs.oracle.com 그 중에 배열을 List로 바꾸는데 편리하게 사용할 수 있는 Arrays...
-
[Baekjoon Online Judge] 5430번: AC문제 풀이/Baekjoon Online Judge 2021. 7. 18. 15:47
5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 숫자를 버..
-
[JAVA] 코드를 올바르게 드러내는 방법Programming/Java 2021. 7. 16. 18:03
자바 코딩의 기술 6. 올바르게 드러내기 코드는 꼭 테스트하라. 아니면 사용자가 하게 된다. — 데이브 토마스, 앤드류 헌트 인간은 모두 실수를 한다. 얼마나 뛰어나든, 교육을 얼마나 잘 받았든, 경험이 얼마나 풍부 하든 가끔 버그가 있는 코드를 작성한다. Java에는 내장된 테스트 지원이 없지만 그 역할은 JUnit 프레임워크가 대신한다. JUnit 프레임워크는 테스트를 자동으로 실행하기 위한 사실상의 Java 표준이다. Java에서 단위 테스트 작성의 사실상 표준인 JUnit의 가장 최신 버전은 JUnit5이다. 테스트 정의를 위해서는 메소드위에 @Test 애노테이션을 추가하면 실행이 가능하다. 6.1 Given-When-Then으로 테스트 구조화 Person.java public class Pers..
-
[CI/CD] Travis CI를 활용한 배포 자동화 (2)Programming/infra 2021. 6. 27. 19:23
이전 글 [CI/CD] Travis CI를 활용한 배포 자동화 (1) 이전 글에서는 단순히 프로젝트를 빌드하는 과정까지만 진행하였다. spring boot 프로젝트의 경우 보통 빌드가 완료되면 내장 톰캣이 들어있는 jar 파일이 생성된다. 배포가 의미하는 것은 해당 jar 파일이 특정한 서버에서 운영되어야 한다. 이번에는 빌드가 완료된 jar 파일을 AWS에서 제공하는 파일 서버에 연동해보려 한다. Amazon S3 아마존 웹 서비스에서 제공하는 온라인 스토리지 웹 서비스이다. s3가 의미하는 것은 Simple Strorage Service의 각 단어의 맨 앞 글자 s 3개를 의미한다. Travis 서버에서 생성된 jar 파일을 S3에 전달해야 한다. 이유는 실제 배포는 AWS의 CodeDeploy를 통..
-
[CI/CD] Travis CI를 활용한 배포 자동화 (1)Programming/infra 2021. 6. 22. 16:24
CI CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 레포지토리에 통합되기 때문에 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다. 이러한 CI를 위한 서비스에는 대표적으로 Travis CI와 Jenkins 등 이 있다. Travis CI Travis CI는 github에서 제공하는 무료 CI 서비스이다. Jenkins의 경우 설치하여 사용해야 하지만 Travis CI는 오픈소스 웹 서비스이기 때문에 오픈 소스인 경우 무료로 사용이 가능하다. 간단한 사용법을 알아보기 ..
-
[INFRA] EC2 서버 접속하기 (Mac & Linux)Programming/infra 2021. 6. 21. 23:51
Mac Mac 구매를 기념하여 Mac에서 EC2 서버에 빠르게 접근할 수 있는 방법에 대해 정리하려 한다. Mac에서 AWS와 같이 외부 서버로 SSH 접속을 위해서는 ssh 명령어를 사용해야 한다. ssh? 보안적으로 취약했던 기존의 telnet등을 대체하기 위해 설계된 Secure shell의 약자이다. 기본적으로 22번 포트를 사용하여 다른 리눅스 서버로 접근이 가능한 프로토콜이다. 기본 암호화 방식을 지원하고 중간에 암호가 해킹을 당해도 원본을 알 수 없고 강력한 인증 방식을 지원하는 프로토콜이다. ssh -i /path/my-key-pair.pem my-instance-user-name@my-instance-public-dns-name 하지만 매번 이렇게 명령어를 입력하여 접속하는 것은 매우 불..
-
[JPA] 긴 길이의 문자열 저장하기Programming/JPA 2021. 6. 20. 22:59
개요 프로젝트를 진행하던 중 프론트에서 특정한 블로그의 게시글 내용을 markdown 문법을 기반으로 긴 길이의 문자열을 전송하여 백엔드와 연동된 DB인 MySQL에 저장하도록 정하게 되었다. JPA에서 긴 길이의 가변 문자열을 처리하는 방법에 대해 알아 보았고 다양한 테스트를 거쳐 각각의 차이를 확인해보았다. SQL 데이터형 CHAR 고정 사이즈이고 남은 공간은 공백으로 채운다. 삽입되는 데이터가 선언된 길이보다 작다면 공간의 낭비가 우려된다. 주민등록번호와 같이 고정된 길이의 데이터는 CHAR를 사용하는 것이 더욱 좋을 것이라고 생각된다. VARCHAR 가변 길이이다. 데이터를 삽입하면 데이터 값 외에 삽입된 문자열의 길이를 저장한다. 255글자 이하에는 1바이트를 필요로 하고, 그 이상은 2바이트의..