본문 바로가기
728x90
반응형

전체 글396

[Eclipse] 코드 자동정렬 안녕하세요. J4J입니다. 이번 포스팅은 이클립스 코드 자동정렬에 대해 적어보는 시간을 가져보려고 합니다. 코드 자동정렬이란? 코드 자동정렬은 실행결과는 변경되지 않고 코드 정렬 방식을 이클립스에 설정된 방식으로 자동정렬해주는 것을 의미합니다. 가끔 코드를 작성할 때 구글에 검색을 해서 가져오거나 또는 다른 파일에 있는 코드를 복붙을 통해 가져오다보면 코드의 정렬된 상태가 깨지는 경우가 발생합니다. 이런 경우처럼 코드의 정렬상태를 모두 동일하게 적용하고자 할 때 코드 자동정렬을 사용하게 됩니다. 사용 방법 코드 자동정렬은 Ctrl + Shift + F를 통해 사용할 수 있습니다. 간단히 for문을 통해 값을 출력하는 코드를 작성해봤습니다. 누가 봐도 코드를 대충 작성해 놓은 티가 팍팍 나는 코드죠? 해당.. 2021. 1. 2.
[Eclipse] 코드 자동완성 안녕하세요. J4J입니다. 이번 포스팅은 이클립스 코드 자동완성에 대해 적어보는 시간을 가져보려고 합니다. 코드 자동완성이란? 코드 자동완성은 말 그대로 코드를 모두 입력하지 않아도 사용 가능한 코드의 형태로 만들어 주는 기능입니다. 자동완성을 사용하게 된다면 변수나 메서드 등을 모두 외울 필요가 없어지고 또한 코드를 작성할 때 의미를 축약해서 작성할 필요가 없어지기 때문에 자동완성을 사용하기 전과 후의 프로그래밍의 질은 말로 표현할 수 없을 정도로 달라지게 됩니다. 사용 방법 코드 자동완성은 Ctrl + Space키를 눌러 사용할 수 있습니다. 예를 들어 List타입의 인스턴스를 myIntegerListOfArrayList라고 이름을 길게 하여 생성하고 만들어진 인스턴스를 사용하고자 합니다. 이때 이름.. 2021. 1. 1.
[Java] 자바기초 - 컬렉션(Collection) 안녕하세요. J4J입니다. 이번 포스팅은 컬렉션에 대해 적어보는 시간을 가져보려고 합니다. 컬렉션이란? 컬렉션이라고 하는 것은 자바에서 데이터를 유용하게 담기 위해 만들어 둔 인터페이스로 컬렉션 프레임워크라고도 많이 부릅니다. 말 그대로 인터페이스이기 때문에 사용자들이 사용하기 위해서는 인터페이스를 상속받아 정의해 둘 필요가 있었고 정의된 클래스들을 자바에서 제공하여 언제 어디서든 사용할 수 있습니다. ※ 인터페이스에 대해 모르신다면? [Java] 자바기초 - 추상클래스와 인터페이스(abstract/interface) 종류 컬렉션의 종류는 List, Set, Map 총 3가지가 있습니다. 이 3개는 모두 인터페이스이기 때문에 위에 말씀드린 것처럼 해당 인터페이스를 상속받아 구현시켜둔 클래스들이 다양하게 .. 2020. 12. 31.
[Java] 자바기초 - 제네릭(Generic) 안녕하세요. J4J입니다. 이번 포스팅은 제네릭에 대해 적어보는 시간을 가져보려고 합니다. 제네릭이란? 자바로 프로그래밍된 코드들을 보시면 인스턴스를 생성할 때 꺽쇠("")들로 표현된 코드들을 보신 경험이 있을 것인데 이런 코드들이 모두 제네릭이 적용된 코드들입니다. 제네릭이라고 하는 것은 클래스 내부에서 사용될 변수들의 타입을 지정해주는 역할을 수행합니다. 다른 표현으로는 담고 싶은 데이터 타입을 정해 다른 데이터 타입은 담을 수 없도록 해준다 라고 말할 수 있습니다. 제네릭을 일상생활에서 비유하자면 뷔페에 갈 때 이쪽은 한식코너, 저쪽은 양식코너와 같이 분류하는 것이라고 생각하면 됩니다. 제네릭을 사용하는 이유는 원치 않은 데이터 타입을 담을 때 컴파일 과정에서 발견하기 위해 사용됩니다. (코드 작성.. 2020. 12. 28.
[Java] 자바기초 - 객체지향(OOP) - 다형성(Polymorphism) 안녕하세요. J4J입니다. 이번 포스팅은 객체지향 프로그래밍의 특징 중 하나인 다형성에 대해 적어보는 시간을 가져보려고 합니다. 다형성이란? 다형성이라고 하는 것은 다형성이라는 말을 그대로 풀이하여 여러 가지 형태를 가질 수 있는 특성을 의미합니다. 다른 표현으로는 자바에서 하나의 인스턴스를 생성할 때 한 클래스에 대해서만 생성하는 것이 아니라 여러 클래스에 대해 인스턴스를 생성할 수 있다는 것을 말합니다. 무슨 말인지 이해가 되지 않으실 것 같아 바로 코드로 표현해보겠습니다. package oop; public class Animal { String zooName = "J4J Zoo"; public void getZooName() { System.out.println(zooName); } public .. 2020. 12. 27.
[Java] 자바기초 - 객체지향(OOP) - 상속화(Inheritance) 안녕하세요. J4J입니다. 이번 포스팅은 객체지향 프로그래밍의 특징 중 하나인 상속화에 대해 적어보는 시간을 가져보려고 합니다. 상속화란? 자바에서 상속화라고 하는 것은 부모 클래스에 정의된 변수 및 메서드 들을 자식 클래스에서 상속받아 사용할 수 있게 되는 것을 말합니다. 일상 속에서 부모의 재산을 그대로 상속받는다는 것과 유사한 개념이라고 생각하시면 됩니다. 상속화를 사용하는 이유는 무엇일까요? 그 이유는 코드의 재사용성을 극대화시키기 위해서입니다. 상속화를 사용한다면 부모 클래스에서 정의한 변수 및 메서드들을 여러 자식 클래스에서도 사용할 수 있기 때문에 재사용성이 증가하게 되고 더불어 자식 클래스에서는 동일한 코드들을 다시 작성할 필요가 없기 때문에 코드가 간결해지게 됩니다. 또한 사용 중인 메서.. 2020. 12. 26.
[Java] 자바기초 - 객체지향(OOP) - 추상화(Abstraction) 안녕하세요. J4J입니다. 이번 포스팅은 객체지향 프로그래밍의 특징 중 하나인 추상화에 대해 적어보는 시간을 가져보려고 합니다. 추상화란? 추상화라고 하는 것은 목적과 관련이 없는 것을 제거하고 필수적인 요소만을 표현해 둔 것을 말합니다. 예를 들어 초코빵과 크림빵을 만든다고 가정해 보겠습니다. 두 빵을 만들 때 빵 표면을 무엇으로 만들지, 빵 속을 무엇으로 채울지에 대한 것은 필수적인 요소라고 할 수 있습니다. 그리고 이 요소들에 대해 빵마다 정의를 해보자면 초코빵일 땐 빵 표면은 밀가루, 속은 초콜릿으로 하고 크림빵일 땐 빵 표면은 쌀가루, 속은 크림이라고 할 수 있습니다. 하지만 뜬금없이 빵을 얼마나 빨리먹을 수 있는지에 대한 것은 빵을 만들 때 필수적인 요소가 아닙니다. 이처럼 프로그래밍을 할 때.. 2020. 12. 23.
[Java] 자바기초 - 객체지향(OOP) - 캡슐화(Encapsulation) 안녕하세요. J4J입니다. 이번 포스팅은 객체지향 프로그래밍의 특징 중 하나인 캡슐화에 대해 적어보는 시간을 가져보려고 합니다. 캡슐화란? 캡슐화라고 하는 것은 알약을 구매할 때 약들이 캡슐에 감싸져 있어 어떤 약인지 알 수 없는 것처럼 클래스 내부의 변수 및 메서드들이 외부에 노출되지 않기 위해 감싸져 있는 것을 말합니다. 클래스가 사용되는 목적에 따라 외부에 노출시킬 메서드와 변수가 정해질 것이고 외부 사용자들은 노출된 변수와 메서드만 사용될 수 있게 됩니다. 캡슐화의 사용 목적은 캡슐화가 무엇인지에 대해서만 들어봐도 어느 정도 예측을 할 수가 있는데 한 마디로 표현을 하면 정보은닉을 위해서입니다. 정보은닉에 담겨져 있는 의미처럼 외부에 의한 중요정보 탈취 및 객체 손상 등을 방지하기 위해 사용됩니다.. 2020. 12. 22.
[Java] 자바기초 - 오버라이딩과 오버로딩(overriding/overloading) 안녕하세요. J4J입니다. 이번 포스팅은 오버라이딩과 오버로딩에 대해 적어보는 시간을 가져보려고 합니다. 오버라이딩(overriding) 오버라이딩이란 부모 클래스에서 사용되고 있는 메서드들을 자식 클래스에서 재 정의한 것을 의미합니다. 자바로 프로그래밍을 하시다 보면 메서드 위에 @override라는 어노테이션을 본 적이 있으실 건데 이런 어노테이션이 붙어있는 메서드들이 모두 오버라이딩된 메서드들입니다. 오버라이딩을 사용하는 목적은 무엇일까요? 그 이유는 프로그래밍을 하다 보면 부모와 자식 클래스 모두 동일한 메서드 명을 사용해야 될 경우가 존재하는데 자식 클래스 입장에서는 부모 클래스와 다른 결과물을 보여주고 싶을 때가 있습니다. 실생화에서 예를 들어보면 10년 전에 부모님이 집을 소유하고 있었는데 .. 2020. 12. 21.
[Java] 자바기초 - 추상클래스와 인터페이스(abstract/interface) 안녕하세요. J4J입니다. 이번 포스팅은 추상 클래스와 인터페이스에 대해 적어보는 시간을 가져보려고 합니다. 사용 이유 추상 클래스와 인터페이스를 사용하는 이유는 클래스를 작성할 때 사용 용도에 맞는 필수적인 요소들을 포함시키기 위해 사용합니다. 예를 들어 핸드폰을 만들 때 핸드폰에는 필수적으로 알람 소리, 벨소리 등이 포함되는데 알람 소리와 벨소리들에 대해 정의하는 것을 포함시키지 않고 핸드폰 제작하는 것을 방지하기 위해 사용합니다. 이처럼 프로그래밍을 할 때도 A라는 클래스를 만들 때 클래스에 필요한 메서드들을 사전에 모두 정의하여 A클래스를 작성할 때 필수적인 메서드들 모두 정의할 수 있도록 도와줍니다. 추상 클래스 추상 클래스는 일반 클래스와 달리 abstract라는 키워드를 이용하여 클래스를 작.. 2020. 12. 21.
[Java] 자바기초 - 접근 제한자 안녕하세요. J4J입니다. 이번 포스팅은 접근 제한자에 대해 적어보는 시간을 가져보려고 합니다. 접근 제한자란? 자바에서 접근 제한자는 말 그대로 자바 내에 존재하는 클래스, 메서드, 변수 들에 대한 접근을 제한하는 역할을 수행합니다. 예를 들어 A클래스에 a라는 변수가 있고 B클래스에 b라는 변수가 있는데 a라는 변수를 A클래스에서만 접근할 수 있고 B클래스에서는 접근하지 못하게, 즉 사용하지 못하도록 해줍니다. 사용 이유 굳이 변수 등의 앞에 키워드를 추가하며 접근 제한자를 사용하는 이유는 바로 정보은닉의 목적 때문입니다. 코드를 작성하다보면 상대방에게 공개해도 되는 데이터 값과 공개하면 안 되는 데이터 값들이 명확하게 구분이 됩니다. 접근 제한자는 이처럼 구분이 필요한 데이터에 보안성을 높여주는 역.. 2020. 12. 16.
[Java] 자바기초 - 생성자(Constructor) 안녕하세요. J4J입니다. 이번 포스팅은 생성자에 대해 적어보는 시간을 가져보려고 합니다. 생성자란? 생성자는 객체를 생성하기 위해 선언을 할 때 변수들의 값들을 초기화 해주는 역할을 수행합니다. 자바에서는 객체를 생성할 때 new라는 키워드를 이용하여 객체를 생성하는데 동일 클래스에 대한 객체를 생성하더라도 생성자가 어떻게 정의되어 있는지에 따라 서로 다른 결과를 만들어 줄 수 있습니다. 생성자의 형태는 메서드의 형태와 유사하지만 메서드와 달리 결과 값을 리턴해주는 타입은 정의하지 않습니다. 그렇기 때문에 {접근지정자} {클래스명} ({파라미터}) {내용} 의 형태로 정의하여 작성을 할 수 있습니다. 다음 코드를 보도록 하겠습니다. package contructor; public class Book {.. 2020. 12. 14.
[Java] 자바기초 - Wrapper Class 안녕하세요. J4J입니다. 이번 포스팅은 Wrapper Class에 대해 적어보는 시간을 가져보려고 합니다. Wrapper Class란? Wrapper Class라고 하는 것은 자료형에 속하는 타입들의 객체화라고 말할 수 있습니다. 우선 자료형에 속하는 것들이 무엇이 있을까요? 나열을 해보면 byte, short, int , long, float, double, char, boolean, String 등이 있습니다. ※ 자료형에 대해 더 자세히 알고 싶다면? [Java] 자바기초 - 자료형 그리고 이런 자료형들을 Wrapper Class로 표현하면 아래 표와 같이 표현할 수 있습니다. 자료형 Wrapper Class byte Byte short Short int Integer long Long float.. 2020. 12. 13.
[Java] 자바기초 - 형 변환(Promotion/Casting) 안녕하세요. J4J입니다. 이번 포스팅은 형 변환에 대해 적어보는 시간을 가져보려고 합니다. 형 변환이란? 형 변환이라고 하는 것은 자료형에 저장되어 있는 값들을 다른 형태의 자료형에 값을 집어 넣는 것 입니다. ※ 자료형에 대해 모르신다면? [Java] 자바기초 - 자료형 다음 코드로 예를 들어 봅시다. package transform; public class Example { public static void main(String[] args) { int intVal = 32; long longVal = intVal; System.out.println("intVal값: " + intVal); System.out.println("longVal값: " + longVal); } } 자료형 중 정수형에 속하.. 2020. 12. 11.
[Java] 자바기초 - 자료형 안녕하세요. J4J입니다. 이번 포스팅은 자바의 자료형에 대해 적어보는 시간을 가져보려고 합니다. 우선 자료형에 대해 알기 전에 알고 있어야 될 개념들이 있습니다. 바로 상수, 변수, bit, byte에 대한 개념입니다. 상수란? 상수라는 것은 무엇일까요? 상수는 항상 일정하게 유지되는 값을 의미합니다. 아마 대부분의 사람들이 상수에 대한 개념을 인지하고 있을 것입니다. 왜냐하면 학교를 다니면서 수학시간에 들어 봤을거거든요. 변수란? 그럼 변수는 무엇일까요? 변수도 어느정도 개념을 인지하고 있을 것입니다. 왜냐하면 상수와 이유가 동일하거든요. 변수를 정의해보면 일정한 값을 가지지 않고 상황에 따라 변화되는 값이라 할 수 있습니다. bit, byte 먼저 bit는 무엇일까요? bit는 데이터를 나타내는 가.. 2020. 12. 10.
[Java] 자바기초 - 입/출력 안녕하세요. J4J입니다. 이번 포스팅은 자바의 입/출력에 대해 적어보는 시간을 가져보려고 합니다. 프로그래밍을 위해 IDE를 사용하면서 입/출력을 수행하고 싶을 때 어떠한 지시가 없으면 IDE는 스스로 입/출력과 관련된 기능을 수행하지 않습니다. 그리고 프로그래밍 언어마다 입/출력하는 방식이 다르기 때문에 각각의 언어에 맞는 입/출력 방식을 사용하여 지시를 내려줘야 되고 자바에서 입/출력에 대한 지시를 내릴 수 있는 방법은 한 가지만 있는 것이 아닙니다. 저는 그 중에서 입력과 출력 모두 각각 2가지 방법을 소개하고자 합니다. 먼저 출력부터 보도록 하겠습니다. 출력 1: System.out 자바에서 출력을 받을 수 있는 방법 중 첫 번째는 System.out입니다. System.out은 자바 출력의 대.. 2020. 12. 8.
[Java] 자바기초 - IDE 안녕하세요. J4J입니다. 이번 포스팅은 IDE에 대해 적어보는 시간을 가져보려고 합니다. IDE란? IDE는 Integrated Development Environment의 약자로 이번에도 똑똑하신 위키백과님에 따르면 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어라고 합니다. 정말 단순하게 말하면 코드가 작성되는 프로그램 툴이라고 말할 수도 있겠습니다. 자바에서 사용되는 IDE 그럼 자바에서 사용되는 IDE는 무엇이 있을까요? 대표적으로 자바에서 사용되는 IDE는 Eclipse, IntelliJ 등이 있습니다. Eclipse와 IntelliJ를 개인적인 견해를 담아 간단히 비교해보면 다음과 같은 특성이 있습니다. 구분 E.. 2020. 12. 6.
[Java] 자바기초 - JVM/JDK/JRE 안녕하세요. J4J입니다. 이번 포스팅은 자바를 이용하여 프로그래밍을 하기 위한 필수적인 환경 요소들에 대해 적어보는 시간을 가져보려고 합니다. 저도 프로그래밍을 시작한 지 오래되지는 않았지만 자바를 사용하여 주로 프로그래밍을 해왔습니다. 하지만 JVM/JDK/JRE을 들어는 봤지만 어떤 역할을 수행하는지는 자세히 알지 못하고 있었습니다. 그렇기에 포스팅을 하면서 이들의 역할들에 대해 간단히 알아보고자 합니다. JVM이란? JVM은 Java Virtual Machine의 약자로 아는 것이 많으신 위키백과님에 따르면 자바 바이트코드를 실행할 수 있는 주체이다 라고 말씀을 하십니다. 그럼 여기서 또 궁금한 것이 생깁니다. 바이트코드가 무엇이죠? 바이트코드는 작성된 코드들을 컴퓨터에서 읽고 해석하기 위한 목적.. 2020. 12. 6.
728x90
반응형