inflearn logo
Course

Course

Instructor

enjoyjava's Posts

enjoyjava enjoyjava

@enjoyjava

Students
7,742
Reviews
102
Course Rating
4.9

Posts 18

Q&A

채팅프로그램 한글 깨짐

터미널 환경이 어떤 인코딩을 사용하느냐에 따라서 방법이 달라집니다. Stream을 알맞은 형태로 인코딩 하거나 String을 인코딩하거나 하는 방법이 사용될 수 있습니다. https://shonm.tistory.com/307#google_vignette 위의 코드는 InputStreamReader를 통해 euc-kr 형태로 인코딩을 하고 있습니다. 이와 유사한 코드가 사용되야 한글이 깨지지 않을 수 있습니다. JDK버전보다는 환경과 인코딩 문제로 보입니다.

Likes
0
Comments
2
Viewcount
517

Q&A

강의 교안

아 죄송합니다. 강의 교안은 제공을 못하고 있습니다. 분실해서 관련된 내용으로 다시 열심히 책을 쓰고 있어요. T_T

Likes
0
Comments
2
Viewcount
787

Q&A

Socket의 InputStream

질문을 제가 잘 이해를 못해서 답변이 어려운데요. 브라우저가 클라이언트일 경우엔 브라우저가 http프로토콜에 맞게 서버에게 요청을 합니다. 프로토콜이란 클라이언트와 서버간의 통신 규칙을 말합니다. http프로토콜이란 규칙으로 브라우저와 서버는 통신합니다. 접속이 되면 요청라인(1줄) 헤더(여러줄) 공백 바디(값이 없을 수 있음) 이런 식으로 정보를 보내게 됩니다. 서버는 한줄씩 읽어들여 그 결과를 출력하게 됩니다. 채팅의 경우는 클라이언트와 서버간에 통신하는 것을 개발자가 직접 어떻게 데이터를 주고 받을 지 결정해야 합니다. 위의 헤더라는 것은 브라우저 요청에서나 있는 일이지 채팅에서는 있는 일이 아닙니다.

Likes
0
Comments
2
Viewcount
602

Q&A

this생성자 관련 질문 있습니다!

캡쳐한 것을 보면 맞게 작성해 놨는데요. 값을 3개 받는 생성자는 작성하신 것처럼 필드를 초기화 하는 코드가 있어야 합니다. 3개를 받는 생성자에서도 this( 값,값,값); 을 하게 되면 자기 자신 생성자를 계속 호출하니 문제가 발생하겠죠?

Likes
0
Comments
2
Viewcount
609

Q&A

66. 채팅 프로그램 만들기 1/2

telnet 127.0.0.1 9999 라고 실행한 후 접속이 되자마자 다른 것은 입력하지말고 화면에 내가 입력하는 글자가 보이지 않더라도 hello라고 입력하고 엔터를 치세요. 지금은 텔렛프롬프트에서 명령을 입력해서 그런것 같아요.

Likes
0
Comments
2
Viewcount
760

Q&A

API 문서가 만들어지지 않습니다

초보자들에게 이런 경우 답답하죠. 그런데, 질문만 봐선 왜 그럴까? 라고 대답하기 어려운게 사실입니다. T_T urstory 골뱅이 gmail.com 으로 프로젝트를 통째로 압축해서 보내줘보세요. 그래야 알 수 있을 것 같아요.

Likes
0
Comments
2
Viewcount
591

Q&A

65. 네트워크프로그래밍1

http://127.0.0.1/9090 이 아니라 http://127.0.0.1:9090 으로 입력하셔야 합니다.

Likes
0
Comments
1
Viewcount
411

Q&A

자바 공부법

연습만이 살길인거 같아요. 1. 꾸준히 알고리즘 문제를 푼다. (알고리즘 문제는 객체지향과는 상관없는 경우가 많습니다.) 2. 객체지향문법은, 나중에 웹 프로그래밍이나 스프링 프레임워크 등을 배우면서 점점 잘 익혀나갈 수 있습니다. 일단 중요 문법들에 대해 암기수준으로 알아두시고, 웹프로그래밍, 스프링 프로그래밍 등을 공부해 나가세요. 그리고 문법이 잘 기억안나면 다시 공부하는 것을 반복 훈련하세요. 의도적 훈련만이 프로그래밍을 잘할 수 있는 방법입니다.

Likes
1
Comments
2
Viewcount
1701

Q&A

Java Comparator 인터페이스 - 람다 표현

Java의 Comparator 인터페이스는 실제로 equals 메소드를 정의하지 않지만, 모든 자바 객체가 상속받는 Object 클래스의 메소드인 equals 를 가지고 있습니다. 이 메소드는 두 객체가 같은지 비교하는 데 사용됩니다. 그러나 Comparator 에서 equals 메소드의 명시적인 정의를 찾을 수 있는 이유는 Comparator 의 일반 규약에 의해 equals 메소드가 필요할 수도 있기 때문입니다. 이는 Comparator 인스턴스를 PriorityQueue 와 같은 특정 자료구조에 전달하거나 Collections.sort() 와 같은 메소드에 전달할 때 중요합니다. 이런 경우 해당 자료구조 또는 메소드는 내부적으로 Comparator 의 equals 메소드를 사용할 수 있습니다. Comparator 인터페이스의 equals 메소드는 다음과 같은 규약을 가집니다: Comparator 가 비교할 수 있는 모든 객체 집합이 동일한 순서로 주어진 경우, 두 Comparator 를 equals 로 비교하면 true 가 반환되어야 합니다. 다시 말해, Comparator 인터페이스의 equals 메소드는 주로 Comparator의 동등성을 검사하는 데 사용되며, 이것은 Comparator가 비교하는 방식, 즉 비교 로직이 동일한지를 판단하는 것을 의미합니다. 그러나 이러한 사용 사례는 매우 드물고, 대부분의 경우 개발자는 Comparator 의 equals 메소드를 재정의할 필요가 없습니다. 아래는 Comparator 에서 equals 메소드를 재정의하는 예시입니다: Comparator caseInsensitiveComparator = new Comparator () { @Override public int compare(String o1, String o2) { return o1.compareToIgnoreCase(o2); } @Override public boolean equals(Object obj) { return obj != null && obj instanceof Comparator; } }; 이 equals 메소드는 obj 가 Comparator 의 인스턴스인지 확인합니다. 이것은 실제로 유용한 구현이 아닙니다(왜냐하면 모든 Comparator 를 동일하게 취급하기 때문입니다), 하지만 이것은 어떻게 equals 메소드가 Comparator 에서 재정의될 수 있는지에 대한 예를 보여줍니다. 일반적으로, equals 메소드를 재정의하는 경우 비교 로직이 같은지 확인하는 로직을 구현하게 됩니다.

Likes
0
Comments
2
Viewcount
689