반응형

자바 48

스프링 입문 - 프로젝트 환경 설정2

https://surrealcode.tistory.com/84 스프링 입문 - 프로젝트 환경 설정https://start.spring.io/ 스프링 부트 기반으로 스프링 프로젝트를 만들어주는 사이트이다. 요즘 추세는 Gradle 프로젝트를 진행한다. Java언어를 선택하고 최신 부트 버전을 선택한다.(SNAPSHOT이나 M이surrealcode.tistory.com 이전에 스프링 프로젝트의 환경 설정을 진행했었다. 이번엔 코드를 짜고 프로그램을 직접 돌려보자.package hello.hello_spring;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplic..

공부/Spring 2024.10.15

스프링 입문 - 프로젝트 환경 설정1

https://start.spring.io/ 스프링 부트 기반으로 스프링 프로젝트를 만들어주는 사이트이다. 요즘 추세는 Gradle 프로젝트를 진행한다. Java언어를 선택하고 최신 부트 버전을 선택한다.(SNAPSHOT이나 M이 붙은 프로젝트는 정식 릴리즈 버전이 아니다.)  제네레이터 선택 이후 프로젝트 임포트 하듯 편하게 임포트 해주면 된다. 간혹 자바 버전이 안맞아서 에러가 발생할 수 있다https://milenote.tistory.com/63 Project Settings > Project > Project SDK SDK 버전을 새로 다운로드 받아서 버전을 맞춘다." data-og-host="milenote.tistory.com" data-og-source-url="https://milenote..

공부/Spring 2024.10.11

자바 컬렉션프레임워크-순회, 정렬, 전체 정리

순회1 - 직접 구현하는 Iterable, Iterator순회라는 단어는 여러 곳을 돌아다닌다는 뜻이다.자료 구조에 순회는 자료 구조에 들어있는 데이터를 차례대로 접근해서 처리하는 것을 순회라 한다.그런데 다양한 자료 구조가 있고, 각각의 자료 구조마다 데이터를 접근하는 방법이 모두 다르다. 예를 들어 배열 리스트는 index를 size까지 차례로 증가하면서 순회해야 하고, 연결 리스트는 node.next를 사용해서 node의 끝이 null일떄까지 순회해야 한다. 이렇듯 각 자료 구조의 순회 방법이 서로 다르다. 배열리스트, 연결 리스트, 해시 셋, 연결 해시 셋, 트리 셋 등 다양한 자료 구조가 있다. 각각의 자료 구조마다 순회하는 방법이 서로 다르기 때문에, 각 자료 구조의 순회 방법을 배워야 한다...

공부/Java 2024.10.09

컬렉션 프레임워크 - HashSet

직접 구현하는 Set - MyHashSetV1https://surrealcode.tistory.com/79 자바 컬렉션 프레임워크 - 해시(Hash)컬렉션 프레임워크 - Set1 리스트(List) vs 세트(Set)자료구조에서의 List와 Set은 각각 특정한 방식으로 데이터를 저장하고 관리하는 데 사용된다.List(리스트)정의 : 리스트는 요소들의 순차적인 컬렉surrealcode.tistory.com이전에 봤던 해시 알고리즘을 사용해서 Set 자료구조를 다시 구현해본다.그 전에 Set의 정의를 다시 한번 복습해보자 Set : 중복을 허용하지 않고, 순서를 보장하지 않는 자료구조이다. 이전에 구현한 MyHashSetV0은add()로 데이터를 추가할 때 셋에 중복데이터가 있는지 전체 데이터를 항상 확인해..

공부/Java 2024.09.30

자바 컬렉션 프레임워크 - ArrayList

배열의 특징 1- 배열과 인덱스배열과 같이 여러 데이터(자료)를 구조화 해서 다루는 것을 자료 구조라한다.자바는 배열 뿐만 아니라, 컬렉션 프레임워크라는 이름으로 다양한 자료 구조를 제공한다.컬렉션 프레임워크와 자료 구조를 설명하기 전에 먼저 자료 구조의 가장 기본이 되는 배열의 특징을 알아보자.public class ArrayMain1 { public static void main(String[] args) { int[] arr = new int[5]; //index 입력 : O(1) System.out.println("==index 입력: O(1)=="); arr[0] = 1; arr[1] = 2; arr[2] = 3; ..

공부/Java 2024.09.25

자바 제네릭(Generic) 2편

저번에 이어서 자바 제네릭을 계속 알아보자. 제네릭이 아직 뭔지 모르겠다면, 이전 포스팅을 참고하도록 하자.https://surrealcode.tistory.com/74 자바 제네릭(Generic) 1편제네릭을 배우기에 앞서 다음과 같은 코드를 살펴보자혹시라도 래퍼 클래스에 대해 잘 모른다면 이전 글을 참고하는게 좋다.https://surrealcode.tistory.com/59 자바 래퍼 클래스(wrapper class)기본형의surrealcode.tistory.com  타입 매개변수 제한이번에는 동물 병원을 만들어 본다고 가정한다. 요구사항은 다음과 같다요구사항: 개 병원은 개만 받을 수 있고, 고양이 병원은 고양이만 받을 수 있어야 한다.import generic.animal.Dog;public c..

공부/Java 2024.09.24

자바 제네릭(Generic) 1편

제네릭을 배우기에 앞서 다음과 같은 코드를 살펴보자혹시라도 래퍼 클래스에 대해 잘 모른다면 이전 글을 참고하는게 좋다.https://surrealcode.tistory.com/59 자바 래퍼 클래스(wrapper class)기본형의 한계 1자바는 객체 지향 언어이다. 그런데 바자 안에 객체가 아닌 것이 있다. 바로 int, double 같은 기본형(Primitive Type)이다. 기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다.1.surrealcode.tistory.compublic class IntegerBox { private Integer value; public void set(Integer value){ this.value = value; } publi..

공부/Java 2024.09.23

자바 예외처리 복습하기

예외처리가 필요한 이유를 알아보기 위해 다음과 같은 간단한 예제 프로그램을 만들었다. 이 코드는 사용자의 입력을 받고, 입력 받은 문자를 외부 서버에 전송하는 프로그램이다.(실제 통신을 하고있다고 가정한다) NetworkClient : 외부 서버와 연결하고, 데이터를 전송하고, 연결을 종료하는 기능을 제공한다.NetworkService : NetworkClient를 사용해서 데이터를 전송한다. NetworkClient를 사용하려면, 연결, 전송, 연결 종료와 같은 복잡한 흐름을 제어해야 하는데, 이런 부분을 NetworkService가 담당한다.Main : 사용자의 입력을 받는다. --> 전체 흐름 : Main을 통해 사용자의 입력을 받으면, 사용자의 입력을 NetworkService에 전달한다. Net..

공부/Java 2024.09.22

자바 지역클래스 복습하기

지역클래스(Local class)는 내부 클래스의 특별한 종류의 하나이다. 따라서 내부 클래스의 특징을 그대로 가진다. 지역클래스도 내부 클래스이므로 바깥 클래스의 인스턴스 멤버에 접근할 수 있다. 지역 클래스 특징1. 지역 클래스는 지역 변수처럼 코드 블럭(메서드) 안에 클래스를 선언한다.2. 지역 클래스는 지역 변수에 접근할 수 있다. 다음과 같은 코드를 보자public class LocalOuterV1 { private int outInstanceVar = 3; public void process(int paramVar){ int localVar = 1; class LocalPrinter{ int value = 0; publ..

공부/Java 2024.09.21

자바 중첩 클래스, 내부 클래스 복습하기

중첩 클래스, 내부 클래스란?다음과 같이 for 문 안에 for문을 중첩하는 것을 중첩(Nested) for문이라고 한다for(){    for(){    }} 클래스도 마찬가지로 클래스 안에 클래스를 중첩해서 정의할 수 있는데, 이것을 중첩 클래스(Nested Class)라 한다.class Outer{    class Nested{    }} 중첩 클래스는 정의하는 위치에 따라 다음과 같이 분류한다. 중첩 클래스는 총 4가지가 있고, 크게 2가지로 분류할 수 있다.정적 중첩 클래스내부클래스 : 내부 클래스, 지역 클래스, 익명 클래스 변수 선언 위치1. 정적 변수(클래스 변수) -> 정적 변수와 같은 위치2. 인스턴스 변수 -> 인스턴스 변수와 같은 위치3. 지역 변수 -> 지역 변수와 같이 코드 블럭..

공부/Java 2024.09.20
반응형