분류 전체보기

자바를 학습하며 지금까지 1000번은 작성해본 것 같은 메인 메서드에 대해 간단한 고찰을 해보려 한다. 왜 public 이어야 하는가? 메인 메서드의 접근제한자를 private으로 변경하고 컴파일 해보니 컴파일에 성공했다. private static void main(String[] args) { System.out.println("Hello"); } 커맨드에서 실행을 시켜봤더니!! 오류: GodOfJava 클래스에서 기본 메소드를 찾을 수 없습니다. 다음 형식으로 기본 메소드를 정의하십시오. public static void main(String[] args) 또는 JavaFX 애플리케이션 클래스는 javafx.application.Application을(를) 확장해야 합니다. main() must b..
💡 해당 글은 『자바의 신 3판』을 복습하며 도서의 내용과 본인의 생각을 정리한 글입니다. 내가 생각하는 프로그래밍은 “일상생활에서 불편했던 점을 프로그램으로 구현해 해결할 수 있게 하는 것” 이라고 생각한다. ☁️ 내용정리 프로그래밍(Programming)이란? 프로그래밍은 컴퓨터에서 할 일을 가르치는 것이다. - 『자바의 신 3판』 프로그래밍을 한다는 것은 작은 작업을 반복적으로 수행하면서 어떤 기능을 만들어 내는 것이다. 내가 잘 이용하는 노션, 구글과 같은 사이트도 작은 프로그램들이 수백, 수천 개가 수행되면서 기능을 제공한다. 사람과 컴퓨터 사이에 의사소통을 위해 필요한 것이 프로그래밍 언어이다. 클래스(Class), 메서드(Method), 변수(Variable) 클래스는 자바의 가장 작은 단위..
자바의 여러 클래스에서 Synchronized 예약어를 통한 동기화된 블록 혹은 메서드를 심심찮게 볼 수 있다. 당장 생각나는 클래스를 나열하면 StringBuffer, HashTable, Vector, ConcurrentHashMap 등이 있다. 아래 java.util.concurrent 패키지에 많으니 참고하길 바란다. java.util.concurrent (Java Platform SE 8 ) Class Summary Class Description AbstractExecutorService ArrayBlockingQueue CompletableFuture A Future that may be explicitly completed (setting its value and status), and ma..
· JAVA
Daemon? 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 시스템 로그를 남기는 syslogd처럼 보통 데몬을 뜻하는 ‘d’를 이름 끝에 달고 있으며, 일반적으로 프로세스로 실행된다. - wikipedia Daemon Thread 데몬은 백그라운드에서 실행되는 프로그램을 말한다. 데몬 스레드는 백그라운드에서 실행되는 스레드이다. Thread클래스의 setDaemon() 메서드를 통해 설정할 수 있다. public final void setDaemon(boolean on) { checkAccess(); if (isVirtual() && !on) throw new IllegalArgumentException("'false' not legal for virtu..
· JAVA
Java Garbage Collection Basics Java Overview Java is a programming language and computing platform first released by Sun Microsystems in 1995. It is the underlying technology that powers Java programs including utilities, games, and business applications. Java runs on more than 850 mill www.oracle.com 해당 포스팅의 모든 이미지의 출처는 오라클 공식 문서이다. 가비지 컬렉션 (GC: Garbage Collection) Automatic garbage collection ..
상속 시, 오버라딩된 메서드는 부모클래스의 메서드보다 같거나 확장된 접근만을 허용한다. public class A { void method() { ... } } // XXX 컴파일 오류 public class B extends A { @Override private void method() { ... } } // OOO public class C extends A { @Override public void method() { ... } } 이는 다형성을 지원하기 위함이라고 생각한다. 만약 오버라이딩된 메서드의 접근 제어 수준을 낮게 설정할 수 있다면 LSP(리스코프 치환 원칙)을 어기게 된다. 리스코프 치환 원칙은 1988년 바바라 리스코프(Barbara Liskov)가 올바른 상속 관계의 특징을 정의하..
· 일기
우테코,, 네 이 녀석 우테코 6기수에 스터디 인원들과 다소 가벼운 마음으로 지원했었다. 결과는 시원하게 탈락! 사실 마음만 가벼웠지 자소서나 미션의 코드는 노오력해서 작성했기 때문에 아쉬운 마음이 크다. 많이 크다.. 솔직히 파이널까진 붙을거라는 자신은 있었는데 시원하게 탈락 하지만 어쩌겠는가 우테코의 기준에 내가 부합하지 않았을 뿐, 내 노력이 부족했다고 생각하진 않는다. 스터디 인원들, 프리코스에서 만난 분들과 코드리뷰를 진행하며 조금씩 성장했다고 생각한다. 스스로 느끼기에 가장 큰 성장점은 객체지향 적인 코드 작성이 가능해졌다는 것과 객체지향적인 설계에 대한 중요성을 알게 되었다는 것, 테스트 코드의 중요성과 테스트하기 쉬운 코드를 작성하는 방법을 알게 되었다는 것이다. 솔직히 교육과정 수료하기까..
· JAVA
GitHub - hyunsb/java-racingcar-6 Contribute to hyunsb/java-racingcar-6 development by creating an account on GitHub. github.com 고민. 비즈니스 로직과 View의 의존성 배제하기 비즈니스 로직을 담당하는 Domain과 입출력을 담당하는 View의 의존관계을 완전히 배제하고 싶었다. 분리를 위해 Domain과 View의 의존관계를 동시에 가지는 Controller를 생성했다. 이렇게 객체를 분리함으로써 로직상의 물리적인 의존관계는 완벽하게 사라졌다. 만약에 화면단에서 표현되는 Car의 진행도를 bar(’-’)가 아닌 다른 문자열로 변경하고 싶다면? 흐름상 코드의 변경은 View에서 이루어지는 게 자연스럽다고..
· JAVA
우아한 테크코스의 프리코스(자동차 경주)를 진행하며 생겼던 고민과 해결방법에 대해 정리하려 한다. GitHub - hyunsb/java-racingcar-6 Contribute to hyunsb/java-racingcar-6 development by creating an account on GitHub. github.com 고민. getter의 활용을 객체 간 대화로 해결하기 변경 전 경주를 진행하는 Car 객체들을 관리하는 Cars 객체이다. 기존의 로직은 현재 가장 멀리 이동한 자동차의 포지션, 선두 자동차를 찾기위해 getter를 사용했다. public class Cars { private final List cars; public List findTopCars() { int topPosition..
hyunsb
'분류 전체보기' 카테고리의 글 목록 (11 Page)