전체 글 261

[Java] Varargs란 무엇인가

vararg란 무엇인가 What is varargs in Java? 자바 메소드를 하나 만든다고 가정하자. 하지만, 우리는 이 메소드가 받아들이고자 하는 인자가 얼마나 많을지 장담할 수 없다. 이를 해결하기 위해, Java 1.5 버전에서 varargs를 도입했다. Varargs는 variable arguments의 준말이다. 자바에서, 메소드의 인자는 임의의 value 개수를 받을 수 있다. 이렇게 value의 변수 개수를 받는 인자를 varargs라고 한다. accessModifier methodName(datatype... arg) { // method body }varargs를 정의하기 위해, … (점 세 개)가 메소드의 파라미터로 사용된다. 인자의 변수 개수를 받는 메소드를 variable-ar..

Java 2022.05.26

[Java] 왜 main()에 들어가는 인자는 오직 String 배열 뿐일까?

자바에서 프로그램을 코딩하기 위해 가장 먼저 입력하는 코드가 있다. public class Example { public static void main(String[] args) { ... } } 바로 이놈인데, 왜 String[] args를 쓰는지 알 길이 없었다. 처음에는 그냥 받아들였는데, 곰곰이 생각해보니 대체 이놈의 정체가 무엇인가! main()이 필요한 이유는 → 자바 클래스에서 main()이 엔트리 포인트기 때문이다. (항상 main()부터 실행된다). 근데 왜 String[] args가 필요하지?! Java 클래스로 프로그램을 실행할 때, JVM은 길이가 0인 String 배열을 먼저 생성한 다음 main() 메소드를 호출할 때 매개값으로 이 배열을 전달한다. String[] args = ..

Java 2022.05.24

[Java]While문 & Switch문 함께 쓸 때 주의점

switch 문에서의 break 원래 while문에서 break를 사용하면 while문을 종료시키고 빠져나올 수 있다. 그런데 만약 while문 안에 switch문을 쓴 뒤, switch문에서 바깥을 감싸고 있는 while문까지 종료시켜야 할 경우라면 어떨까? 그냥 생각해보면 switch문의 특정 case에서 break넣으면 되는 거 아냐?라고 생각할 수 있는데, 이렇게 하면 문제가 발생한다. switch 문에서의 break는 case를 빠져나가는 용도로만 쓰이지 while을 종료시키지 않기 때문. 그렇다고 break를 두 번 쓰려니 이미 위의 break에서 switch문을 빠져나왔으니 아래 break로 가지 않는다. 어떻게 해야 할까? 결론부터 말하면, while문을 종료시키려면 while문에서의 조건..

Java 2022.05.23

5월 3주차 회고(5/16~5/20)

이번주 점수는? ⭐⭐⭐⭐ 😍 좋았던 것(Liked) 전반적으로 회사에 대한 만족도가 상승했던 한 주였다. 회사 내부 정보가 바깥에는 잘 알려지지 않은만큼 걱정이 꽤나 컸는데, 막상 와보니 생각 이상으로 좋은 환경이더라. 조금 정리해보면 비전과의 얼라인 우리 회사의 미션은 Finance for all로, 인도에서 금융 서비스를 받지 못하는 사람들을 대상으로 금융 서비스(현재는 소액대출이 메인이고 최종 지향적은 종합 금융. 쉽게 말해 인도의 토스)를 운영하고 있다. 우리의 비전은 “인도 GDP 0.5% 올린다”는 것인데, 최근 성장세를 보면서 “이게 진짜 될 수도 있겠구나, 그러면 진짜 큰 비즈니스 임팩트를 만들 수 있겠다"는 생각이 들었다. 여기에 정말 많이 기여하고 싶다고 다짐하면서 회사의 비전과 동화되..

[Java]참조 타입(이것이 자바다 Ch.5)(작성 중)

5.1 데이터 타입 분류 데이터 타입 원시 타입(Primitive type) 정수 타입 byte(1byte) char(2byte) short(2byte) int(4byte) long(8byte) 실수 타입 float double 논리 타입 boolean 참조 타입(Reference type) 배열 타입(array) 열거 타입(enum) 클래스(class) 인터페이스(Interface) 💡 참조 타입: 객체의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말함. 변수: 스택에 생성 int, double → 직접 값을 저장 객체: 힙에 생성 클래스 변수 → 힙 영역의 객체 주소 값을 갖는다. 주소를 통해 객체를 참조한다는 뜻에서 클래스 변수를 참조 타입(Reference type) 변수라..

Java 2022.05.20

네카라쿠배당토 시니어 개발자가 전해주는 2가지 교훈

동기 형과 저녁 먹으면서 전해 들은 교훈. 네카라쿠배당토 중 한 곳의 시니어 개발자를 만나고 얻은 교훈이라며 전해줬는데 꽤나 울림이 있었다. 1. 자발적인 참여는 곧 신뢰 자산으로 누적 회사 내에서 이례적인 횟수로 이 달의 개발자(?) 비슷한 상을 받았다고 했다. 어떻게 그게 가능했냐 물었더니 자발적으로 발 벗고 나선 덕분이었다고. 도움이 필요한 곳이 보이면 그게 어디가 됐던 간에 나서서 도와주고 오셨다고 했다. 자기 셀, 자기 팀이 아니더라도. 심지어 그 일이 자기와 전혀 무관함에도. 왜 그랬을까? 저 과정에서 쌓인 신뢰가 곧 자기의 자산이 된다. IT업계에 종사하는 이상, 어느 회사가 자신의 평생 직장이 될 일은 거의 없다고 봐도 만무하다. 그런 상황에서 저 사람과 같이 일하고 싶지 않을 사람이 얼마..

인사이트 일기 2022.05.18

[Java]Integer types and operations

Integer types and operations Java는 정수를 나타내는 몇 가지 자료형을 제공한다. 실제로, 가장 많이 사용하는 자료형은 int와 long이다. 첫번째 타입은 두 번째보다 더 작은 범위의 숫자를 저장할 수 있으나, 보통은 int형만으로도 충분하다. 1. Integer types: the basics int two = 2; int ten = 10; int twelve = two + ten; // 12 int eight = ten - two; // 8 int twenty = two * ten; // 20 int five = ten / two; // 5 int zero = ten % two; // 0, no remainder(나머지 없음) int minusTwo = -two; // -2..

Java 2022.05.16

[Java]프로그래밍 패러다임이란?

우리는 어떤 문제를 코딩으로 해결하는 과정에서 여러 가지 방법으로 접근할 수 있다. 우리는 함수를 작성하기를 원할 수도, 혹은 메소드를 담고 있는 클래스를 생성할 수도 있다. 이러한 모든 다양성은 서로 다른 프로그래밍 접근 방식으로 결합될 수 있는데, 이를 우리는 패러다임이라고 부른다. (프로그래밍 “관점”으로 해석할 수 있음)아래 우리는 크게 두 가지의 메인 패러다임을 분석할 것인데, 바로 명령형(imperative)과 선언형(declarative) 및 이들의 타입에 대해서이다. 거의 모든 현대 프로그래밍 언어는 멀티 패러다임이다. 이들은 쉽게 명령형 접근과 선언형 접근을 결합해서 사용할 수 있다. 그럼에도, 각 패러다임에 대한 섹션에서, 우리는 다른 패러다임 중 섹션에서 논의된 것이 구현되는 프로그래..

기술면접 준비 2022.05.09

[Java]Scanning the input

standard input: 프로그램 안으로 들어가는 데이터의 흐름을 말한다. 이는 운영체제에 의해 제공된다. 기본적으로, standard input은 키보드 input으로부터 데이터를 얻으나 파일로부터 리다이렉트해 얻을 수도 있다. 1. Reading data with scanner standard input으로부터 데이터를 얻는 가장 심플한 방법은 standard class scanner를 사용하는 것이다. 이는 프로그램이 standard input으로부터 서로 다른 자료형의 값을 읽도록 한다. 이 클래스를 쓰기 위해 우리는 반드시 파일의 맨 위에 import 문을 선언해야 한다. import java.util.Scanner; 그 다음, import 아래에 다음과 같이 구성한다. Scanner sca..

Java 2022.05.09

[Java]Comments(주석)

1. End-of-line comments // : 자바 컴파일러는 라인에서 // 뒤에 오는 텍스트는 모두 무시한다. class Program { public static void main(String[] args) { // The line below will be ignored // System.out.println("Hello, World"); // It prints the string "Hello, Java" System.out.println("Hello, Java"); // Here can be any comment } } 2. Multi-line comments 여러 줄에 걸쳐 주석을 달려면 해당 부분을 /* 로 시작해 */ 로 끝나게 감싸면 된다. class Program { public st..

Java 2022.05.09