본문 바로가기

Java

(80)
[Leetcode] JAVA - Concatenation of Array (Easy) 문제) 배열 값을 연결해서 출력해야한다. 방법) class Solution { public int[] getConcatenation(int[] nums) { int n = nums.length; int[] ans = new int[2 * n]; for (int i = 0; i < n; i++) { ans[i] = nums[i]; ans[i+n] = nums[i]; } return ans; } } nums의 길이의 2배인 ans배열을 생성하고, ans[i]와 ans[i+n]에 각각 nums[i]를 대입한다.
[Leetcode] JAVA - Palindrome Number (Easy) 문제) 대칭수 또는 회문수는 순서대로 읽은 수와 거꾸로 읽은 수가 같은 수를 말한다. 방법) class Solution { public boolean isPalindrome(int x) { if(0
[Leetcode] JAVA - Two sum(Easy) 문제) 배열 nums에서 인덱스의 원소값과 인덱스+1의 원소값을 더했을 때 target 값과 같으면 해당 인덱스들을 반환한다. 방법 1) class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0; i
제이쿼리(jQuery) 기초 문법 - 제이쿼리 비동기 방식 연동 (AJAX) 제이쿼리(jQuery) 기초 문법 제이쿼리 비동기 방식 연동 (AJAX) Ajax(Asynchronous JavaScript and XML)란 비동기 방식의 Javascript와 XML을 가리킨다. 동기 방식 : 서버에 신호를 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있음. 비동기 방식 : 서버에 신호를 보냈을 때 응답 상태와 상관없이 다음 동작을 수행할 수 있음. Ajax를 이용하는 이유는 화면 전환 없이 클라이언트(사용자 컴퓨터)와 서버(서비스를 제공하는 컴퓨터)간에 XML, JSON(JavaScript Object Notation), 텍스트, HTML 등의 정보를 교환하기 위해서이다. Ajax를 이용하면 사용자가 서버에 자료를 요청할 때 화면 전환 없이 요청한 자료를 전송받을 수 있다. 또..
자바 - 스트림의 연산, 스트림의 최종 연산 forEach() 자바 - 스트림의 연산, forEach()에 대해서 알아보자. 스트림의 연산 스트림이 제공하는 다양한 연산을 이용하면 복잡한 작업들을 간단히 처리할 수 있다. 스트림에 정의된 메소드 중에서 데이터 소스를 다루는 작업을 수행하는 것을 연산(operation)이라고 한다. 스트림이 제공하는 연산은 중간 연산과 최종 연산으로 분류할 수 있는데, 중간 연산은 연산결과를 스트림으로 반환하기 때문에 중간 연산을 연속해서 연결할 수 있다. 반면에 최종 연산은 스트림의 요소를 소모하면서 연산을 수행하므로 단 한번만 연산이 가능하다. 중간 연산 : 연산 결과가 스트림인 연산. 스트림에 연속해서 중간 연산할 수 있음 최종 연산 : 연산 결과가 스트림이 아닌 연산. 스트림의 요소를 소모하므로 단 한번만 가능 stream.d..
자바 - 스트림(stream), 스트림의 특징 자바 - 스트림(stream), 스트림의 연산, forEach()에 대해서 알아보자. 스트림(stream) 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기위해 for문과 Iterator를 이용해서 코드를 작성하는데 이러한 코드는 길고 알아보기 어려워 재사용성이 떨어진다. 또 다른 문제는 데이터 소스마다 다른 방식으로 다뤄야 한다. Collection이나 Iterator와 같은 인터페이스를 이용해서 컬렉션을 다루는 방식을 표준화하긴 했지만, 각 컬렉션 클래스에는 같은 기능의 메소드들이 중복해서 정의되어 있다. 예를 들어 List를 정렬할 때는 Collections.sort()를 사용해야 하고, 배열을 정렬할 때는 Arrays.sort()를 사용해야한다. 이러한 문제점들을 해결하기 위해서 만든 것이 '스..
자바 - 멀티 스레드를 이용한 에코 서버 & 클라이언트 작성 자바 - 멀티 스레드를 이용한 에코 서버 & 클라이언트 작성에 대해서 알아보자 멀티 스레드를 이용한 에코 서버 & 클라이언트 스레드는 main스레드와 EchoServerThread 스레드로 나뉘게 된다. main 스레드: 클라이언트의 접속 요청을 기다리는 스레드 EchoServerThread 스레드 : 클라이언트와 연결된 소켓 객체로부터 io를 얻어 데이터 송수신을 하는 스레드 에코서버의 메인스레드는 accept()로 대기하고 있다가 클라이언트가 접속하게 되면 accept하면서 socket객체를 반환한다. 반환한 소켓을 EchoServerThread의 생성자로 넘겨주면서 EchoServerThread 객체를 생성하고 에코 서버의 메인 스레드는 다시 accept()로 대기하고 있는다. 여기서 생성된 Ech..
자바 - TCP를 이용한 에코 서버 & 클라이언트 작성 자바 - TCP를 이용한 에코 서버&클라이언트 작성에 대해서 알아보자 TCP를 이용한 에코 서버 & 클라이언트 1. 서버 측의 ServerSocket이 먼저 특정 포트 번호를 열고 대기하고 있는다. 2. 클라이언트 측 Socket 클래스가 생성할 때 서버 측 IP주소와 지정한 포트 번호를 지정하면 3. 서버 측 프로그램에서는 대기 중인 ServerSocket의 accept 메소드가 접속을 요청한 클라이언트 측 소켓 객체를 반환한다. 서버 측 프로그램에서 이렇게 반환된 Socket 객체로 클라이언트 측의 Socket객체와 통신을 한다. ServerSocket 클래스의 주요 메소드 ServerSocket(int port) : 클라이언트 요청을 받아들일 포트번호를 갖고 ServerSocket 객체 생성 Soc..