소개
지식공유자 소개 ✒️
동국대학교에서 컴퓨터 공학을 전공하고 서울대학교 대학원에서 컴퓨터 공학 석사 학위를 받았습니다. 회사를 다닐 때는 자바, C, C++ 등 언어로 다수의 개발 프로젝트를 진행하였고, 비트 컴퓨터, T 아카데미에서 자바, 웹, 자료구조와 알고리즘, 모바일, 디자인 패턴 분야 등의 강의를 진행하였습니다.
국민대와 경희대에서 비전공자를 대상으로 하는 프로그래밍 강의를 하였으며, NHN NEXT에서 겸직 교수로 자바 프로그래밍과 프로그래밍 연습 강의를 진행했습니다. 10년은 개발자로 일했기에 실무에서 필요한 내용을 잘 알고, 또 다른 10년은 강의를 하며 초보자의 마음까지 잘 알게 되었습니다.
요즘 최대 관심사는 초등학생부터 어른까지 각계각층의 사람들이 멋진 프로그래밍 세계에 관심을 가지고 공부할 수 있도록 도와주는 것입니다. 현재는 이노베이션 아카데미(42서울)의 멘토로 있답니다.
이력 사항
이노베이션 아카데미(42 SEOUL) 멘토
'Do It 자바 프로그래밍 입문' 저자(이지스퍼블리싱)
패스트캠퍼스, 인프런의 인기 자바 프로그래밍 강의 제작자
NHN NEXT 겸직교수, 비트교육센터, TAcademy 강사
스펙트라 개발 팀장
현대정보기술
서울대학교 컴퓨터공학부 석사
동국대학교 컴퓨터공학과 학사
포트폴리오/개인 영상
Do it 자바프로그래밍 입문 저자
http://www.yes24.com/Product/Goods/62281686
Do it 자바 프로그래밍 입문 강의 (인프런)
자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
은종쌤의 프로그래밍 강의 (유튜브)
https://www.youtube.com/channel/UCTBVYQc1ZVDbAZcm1J_pniA
강의
수강평
- 자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
- 자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
- 자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
- 자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
- 자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
게시글
질문&답변
이진 탐색 문제 질문드립니다
Set의 경우는 key 값만을 사용하고 key값은 colleciton으로 반환 받아서, JDK 내부의 contatins() 코드는 아래와 같습니다. 하나의 iteration을 돌면서 체크하는 것은 크게 다르지 않습니다. public boolean contains(Object o) {IteratorE> it = iterator();if (o==null) {while (it.hasNext())if (it.next()==null)return true;} else {while (it.hasNext())if (o.equals(it.next()))return true;}return false;}
- 0
- 1
- 136
질문&답변
질문드려요
예... 잘 이해하셨네요^^
- 0
- 4
- 230
질문&답변
질문드려요
아하... 이렇게 답변하면 될것 같네요. 우리가 지금 실습하는 코드는 main()함수가 시작될때 프로그램이 시작되는 시점입니다. 우리가 만드는 예제 코드는 main()에서 시작되어 여러 객체가 생성되고 main()이 종료되는 것이 끝인데, 이 전에 컴파일 단계에서 .class 파일이 생성되는데 그 .class 파일에는 실제로 수행되어야 하는 코드 영역과, static, 상수, 리터럴 등을 가지고 있는 data 부분이 따로 있습니다. 그렇게 data 부분에 대한 값들은 .class 파일이 메모리에 로드될 때 데이터 영역에 만들어 집니다.
- 0
- 4
- 230
질문&답변
질문드려요
프로그램이 시작할 때 즉, 프로그램이 프로세스로 메모리에 로드되는 시점인데요 그건 우리가 프로그램을 실행할 때 입니다. 가령 워드가 있으면 워드 아이콘을 더블 클릭해서 실행하지요 그때가 프로그램이 실행될 때 라고 합니다. 로드는 메모리 기준으로 보면 프로그램이 시작된다는건 프로세스가 되어 메모리에 로드된다는 의미입니다.
- 0
- 4
- 230
질문&답변
ChatRoom에서 synchronized 사용 이유
예.. 하나만 연결할 때는 크게 의미가 없지만 여러 쓰레드가 동시에 접근할 수 있기 때문에 synchronized 를 사용했습니다.
- 0
- 1
- 347
질문&답변
구현과 오버라이딩
중괄호가 있는것은 코드 내용이 없는 것일뿐 구현부가 있는 것입니다. 구현부가 없는 추상 메서드는 ';'(세미콜른)으로 끝나는 메서드 입니다. 상속 받은 하위 클래스에 { }만 있게되어도 구현부가 있는 것입니다.
- 0
- 1
- 105
질문&답변
미로찿기 질문드립니다
제가 아직 이부분에 대한 체크를 못했습니다. 코드 확인하는대로 다시 답변드리겠습니다. 기다리실까봐 먼저 남깁니다. 꼼꼼히 공부해주셔서 감사합니다^^
- 0
- 2
- 171
질문&답변
socket 질문드립니다
서버 소켓이 accept() 후에는 클라이언트가 연결될 때까지 기다립니다. 그리고 클라이언트가 연결되면 클라이언트와 1:1 통신할 내부 소켓이 반환 됩니다. 빨간 부분은 연결 되었을때 생성된 서버의 내부 소켓의 정보를 콘솔창에 로그로 나타내기 위해 적은 내용입니다. 클라이언트가 연결될 때마다 정보가 출력되는 것을 보실 수 있을 겁니다. readLine은 한 줄을 읽는 것입니다. 소켓은 소켓 버퍼에서 내용을 읽는데.. 내용이 없으면 읽지 않습니다. 위 예제는 클라이언트가 서버와 연결하면서 송신한 내용이 있어서 바로 읽게 됩니다. 채팅과 같은 경우는 while() 문과 같은 반복문을 활용하여 소켓 버퍼에 내용이 들어오게 되는 경우 읽게 구현할 수 있습니다. 소켓의 읽고 쓰는 역할은 클라이언트 서버 모두 동일합니다.
- 0
- 1
- 193
질문&답변
큐 구현하기 질문드립니다
제가 지금 github 에 올라간 Queue 코드를 확인해 보니 다음과 같이 코드가 되어 있습니다.@Override public boolean isEmpty() { if( front == null && rear == null) { return true; } else return false; }head == null 로 체크하는 부분은 List 인데, 확인해보시면 감사하겠습니다.
- 0
- 2
- 173
질문&답변
큐 구현하기 질문드립니다
아... isEmpty() 코드를 수정해야겠습니다. 알려주셔서 감사합니다. 코드 수정되면 다시 알려드리겠습니다
- 0
- 2
- 173