Blog blog = new Korea()

Java 18

[Java] 자바의 데이터 타입

👀 데이터 타입이 뭐야? 데이터 타입은 말 그대로 어떠한 데이터가 동작하는 방식에 따라 나뉘는 타입을 말한다. 보통은 int, char, String 등 여러 데이터 타입을 의미하지만, 내가 오늘 하고 싶은 이야기는 이 모든 데이터 타입을 포함하는 넓은 의미의 데이터 타입에 대한 이야기를 하고자 한다. 🤪 원시? 참조? 자바는 총 2가지의 큰 데이터 타입으로 나뉜다. 1) 원시 데이터 타입(Primitive), 2) 참조 데이터 타입(Reference) 이 두 가지가 그것이다. 원시 데이터 타입은 총 8개의 타입을 제공하며, 우리가 흔히 알고 있는 int, char, boolean 등을 포함하고 있다. 더보기 자바의 원시 데이터 타입 8가지 1) byte 2) short 3) int 4) long 5) ..

Java 2022.09.04

[Java] Covariant(공변성)에 관한 간단한 이야기

📝 객체지향 5원칙(SOLID) SOLID는 객체지향 5원칙의 두음을 따서 만든 말이다. 각각 나열하자면, SRP(단일 책임 원칙) OCP(개방 폐쇄 원칙) LSP(리스코프 치환 원칙) ISP(인터페이스 분리 원칙) DIP(의존관계 역전 원칙) 위와 같이 존재한다. 이 중 오늘 이야기할 Covariant(이하 공변성)에 관한 이야기가 속한 곳은 LSP(Liskov Substitution Principle)다. 📌 LSP란? LSP는 타입 S가 타입 T의 서브타입이라면 프로그램의 속성 변경 없이 T타입의 객체를 S타입으로 치환할 수 있어야 한다.라는 개념이다. 쉽게 말하면, 서브타입은 수퍼타입을 대체할 수 있어야 한다는 말이다. 서브타입이 수퍼타입을 대체하는 개념, 그것이 바로 공변성이다. 공변성을 이용한..

Java 2022.09.02

[Java] System 클래스

🤗 자바는 클래스의 집합! 자바를 사용하면 흔히 클래스라는 것을 만든다. 클래스는 무엇인가를 설명하기엔 너무나 깊은 이야기일 것 같아서.. 따로 알아보고 참고하면 좋겠다. 근데 자바에 있는 메서드는 어디서 오느냐.. 모두 자바 속에 있는 패키지의 클래스에서 온다. 💻 System 클래스 System 클래스는 말 그대로 system 환경과 직접적인 관계가 있는 클래스이다. System에는 3가지 중요한 클래스 변수가 있는데, in, out, err이다. in은 표준 입력에 사용되고, out은 표준 출력에 사용되며, err은 에러를 출력하는 데에 사용되는 변수다. 그리고 print, println, printf 및 arraycopy 등 다양한 메서드를 통해 입력, 출력, 에러와 관련된 동작들을 처리하게 된다..

Java 2022.08.30

[Java] main 메서드

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } 😥 main 메서드가 뭔가요? 위에 간단한 출력문을 하나 작성해봤다. 뭐.. 들여쓰기가 마음에 들지 않을 수 있지만.. 양해해주기를 바란다. (분명히 내 코드 블럭에서는 정확히 들여썼다..ㅠㅠ) 여튼 본론으로 넘어가서, main 메서드는 자바에서 핵심 메서드라고 생각하면 된다. 프로그램이 시작되는 곳이자, 종료되는 곳. 그게 main 메서드의 의미다. 그래서 main 메서드는 String 타입의 배열인 args를 인자로 받아야 하고, static을 선언해주어야 한다는 조건들이 있다. 간단히 생각하면 시작 버튼이라고 ..

Java 2022.08.13

[Java] Static에 관한 이야기..

Advanced Java 과정을 들으며.. 이번에 자바 강의를 들으면서 Static에 대해서 다시 정리하고자 한다. 이전에는 static에 대해서 단순히 static 메모리에 저장해서 서로 공유한다는 내용만 적었는데, 그보다 훨씬 심오한 제어자라는 걸 알게 됐다. 그리고 오히려 이전의 글은 약간의 오해도 불러일으킬만 하다고 생각되어서 약간의 수정도 곁들일 예정이다. 이전 글은 아래를 참고해주면 좋겠다. 2022.07.09 - [프로그래밍 언어] - [Java] Private과 Static이 공존할 수 있다!? [Java] Private과 Static이 공존할 수 있다!? 😐 나만 볼 거야, 'Private' 자바에는 여러 접근제어자가 있다. Public Default Protected Private 제어..

Java 2022.07.18

[Java] NHN Academy, Advanced Java!

👀 NHN Academy? 지역사회 청년들을 대상으로 SW 교육을 제공하기 위해 2021년에 출범한 NHN 예하 전문교육기관이다. 첫 설립은 경남에서 진행했고, 이번에는 광주 1기 교육을 시작했다. 🤔Advanced Java는 뭔데? 원래는 Java 백엔드 개발 과정 부트캠프(4개월)를 진행할 계획이라고 알고 있었는데, 바로 부트캠프를 시작했을 때 잘하는 사람과 못하는 사람의 격차가 크게 날 것을 고려해서 사전 교육을 진행하는 것과 같다. 본 과정은 자바의 기초부터 응용까지 배우는 과정이고 오늘을 첫 시작으로 1개월 동안 진행된다. 그리고 대상자는 전공자라고 명시되어있다. 하지만 비전공자 불가라는 문장은 없어서 나는 국비지원 교육을 받았던 경험을 어필하고 비전공자로 교육을 참여할 수 있었다. (나 이외에..

Java 2022.07.11

[Java] Private과 Static이 공존할 수 있다!?

😐 나만 볼 거야, 'Private' 자바에는 여러 접근제어자가 있다. Public Default Protected Private 제어 범위는 이름 그대로 생각하면 된다. 지시자 클래스 내부 동일 패키지 상속받은 클래스 이외의 영역 private O X X X default O O X X protected O O O X public O O O O 자, 잠시 다른 이야기로 넘어가서 🙆‍♂️ 다 같이 쓰자! 'Static' 자바에는 static이라는 제어자가 있다. 요건 static(정적)한 메모리에 변수 or 메서드를 저장해 둘 테니 모두 공유하자! 라는 소리다. 단, static은 자신만의 영역이 있기 때문에 static끼리만 사용할 수 있다. class whatIsStatic { public stati..

Java 2022.07.09

[Java] 상속(Inheritance)의 기본

📌 상속의 특징 프로그래밍 언어에서 상속이라고 해서 다를 것은 없다. 상속의 가장 기본은 현실과 같다. '물려주는 것' 본인이 갖고 있는 것에 대한 모든 것을 물려주는 것이다. 메서드, 변수 등등.. 흔히 상위 클래스와 하위 클래스로 나뉜다. 상위 클래스는 상속을 하는 클래스 하위 클래스는 상속을 받는 클래스 예시는 아래와 같다. class Man { // 상위 클래스 public String name; public Man(String name) { this.name = name; } public void tellName() { System.out.println("이름 : " + name); } } class BusinessMan extends Man { // 하위 클래스 public String com..

Java 2022.07.09

[Java] Java 공부

📝 난 정말 JAVA를 공부한 적이 없다구요 개발자로 일하고 있는 친구에게서 자바 책 하나를 물려받았다. 오래된 책이라 모던 자바에 어울리는 서적은 아니지만, 자바의 기초에 대해서 정말 잘 설명하고 있는 책이라서 처음부터 읽어보고 있다. 이 책을 읽으면서 공부한지는 꽤 됐으나, 이제야 글을 쓴다. 😐 JAVA의 변수 타입? 최근 싸피 말고 자바 관련 부트캠프가 있어서 면접을 보러 갔었다. 전공자만 뽑지만 국비 지원으로 교육받은 이력이 있어서 면접 보러 오라고 하셨다더라..ㅋㅋㅋㅋ 면접에서 자바의 각 타입과 참조 타입을 아냐고 물으셨는데, 사실 용어를 잘 몰랐던 나는 대답하지 못했다. 알고 보니 일반 타입과 참조 타입을 물어보신 건데... 자바의 일반 타입은 총 8가지가 있다. byte, short, in..

Java 2022.07.06