프로그래밍 언어
-
JAVA 뽀개기) Collection - List에 대해 자세히 알아보자!프로그래밍 언어/Java 2023. 12. 13. 14:26
이제 본격적으로 Collection의 한 종류인 List에 대해 설명하겠습니다. List에는 크게 3가지 종류가 있습니다. ArrayList LinkedList Stack 순서대로 다뤄보겠습니다. ArrayList 기존 배열과 비슷한 List의 가장 큰 특징은 크기가 정해져 있지 않고 값을 계속 추가할 수 있습니다. 기존 배열의 단점은 배열의 크기가 정해져있고 그 크기를 줄이거나 늘릴 수 없었는데, List는 굳이 그럴 필요가 없습니다. 편의성 부분에서 기존 배열보다 압도적으로 사용하기 쉽습니다. 사용하는 법 // 선언 & 생성 (참조형 변수는 Integer를 사용하겠습니다. 필요에 따라 바꿀 수 있습니다.) ArrayList intList = new ArrayList(); // 초기화는 필요 없습니다!..
-
JAVA 뽀개기) Collection에 대해 쉽게 알아보자!프로그래밍 언어/Java 2023. 12. 13. 13:58
Java에서 배열은 정말 유용하게 사용됐지만, 특유의 경직성 때문에 사람들은 더 확장된 기능의 배열을 내놓기 시작했습니다. 바로 Collection입니다. Collection은 배열을 더 고도화시킨 새로운 참조형 자료구조를 제공합니다. Collection에는 여러 종류가 있고 쓰임새가 모두 다르기 때문에 그 쓰임을 정확히 아는게 좋습니다. Collection의 종류는 크게 4가지가 있습니다. List: 순서가 있는 데이터의 집합(기존 배열과 비슷합니다.) Queue: First In First Out 원칙이 적용된 데이터의 집합(실생활의 빨대같은 자료구조입니다.) Set: 순서와 중복을 허용하지 않는 데이터의 집합 Map: 순서가 없는 Key, Value쌍으로 이루어진 데이터의 집합(Key값은 중복되지 ..
-
JAVA 뽀개기) 얕은 복사? 깊은 복사?프로그래밍 언어/Java 2023. 12. 13. 12:44
자바에서는 변수 값을 저장할 때 두 가지 형태가 있습니다! 첫번째는 값을 그대로 저장하고 불러오는 형태(기본형 타입: int, long, char...) 두번째는 값을 저장하고 저장된 곳의 주소를 가져오는 형태(참조형 타입: 배열, 클래스...) 이렇게 글로만 적으면 잘 와닿지 않을겁니다! 그렇다면 아래의 예시코드를 보면서 확인해봅시다. // 얕은 복사 int[] a = {1, 2, 3}; int[] b = a; b[0] = 10; System.out.println(a[0]); // 10으로 출력 위의 코드는 대표적인 참조형 타입인 배열을 예시로 들었습니다. 배열 a 는 {1, 2, 3}을 포함하고 배열 b는 배열 a와 같게끔 =부호를 넣었습니다. 이제 머리속으로 생각해 봅시다! 배열 a는 {1, 2, ..
-
JWT 토큰 만들기 튜토리얼!) 1. JWT 토큰에 대한 설명프로그래밍 언어/Java 2023. 12. 11. 14:02
이 글은 JWT토큰을 배워가는 사람이 적은 글로써 막 JWT토큰을 배우는 사람에게 조금이라도 도움을 주고자 적은 글입니다. JWT는 Json Web Token의 줄임말로, JSON포맷을 이용해 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token입니다. 여기서 Claim과 Token은 상당히 중요하니 의미를 잘 알아야합니다. Claim이란 사용자의 속성이나 성질을 일컫는 말입니다. Token이란 웹 상에서 특정한 목적으로만 사용 가능한 동전에 일종의 권한를 주는 것을 말합니다. 다시 쉽게 정리하여 말하자면, JWT는 사용자의 정보(Claim)를 JSON형식으로 저장한 토큰입니다. 아래는 Claim을 JSON형식으로 서술한 예시입니다. { "id": 1, "username": "user1234..
-
정규 표현식 정리프로그래밍 언어/Spring 2023. 11. 29. 18:05
더보기 해당 글은 필자가 공부한 내용을 이해를 위해 정리한 것입니다. 전문성이나 정확성 다소 부족할 수 있습니다. 정규표현식이란? 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어입니다. 정규표현식이 나타나게된 이유? 사람은 텍스트를 의미를 가진 문자열로 인식할 수 있습니다. 예를 들면, 사람이 010-1234-5678나 123456-1234567 같은 문자열을 보면 바로 전화번호나 주민등록번호임을 유추할 수 있습니다. 하지만, 컴퓨터의 입장에서는 두 문자열 모두 의미없는 문자열일 뿐 입니다. 현대에서는 막대한 양의 데이터들을 고도화해야 하기때문에 이런 정보들을 일일히 사람들이 처리하기는 매우 어려운 일입니다. 그래서 나타난게 정규표현식입니다. 정규표현식을 사용하면 컴퓨터에게는 의미없는 문자열을 유용..
-
1대N, N대1, N대M 관계에 대해 알아보자프로그래밍 언어/Spring 2023. 11. 20. 21:36
앞서 Entity를 만들고 ERD를 그려보면서 서로 다른 두 데이터의 연관관계에 대해 살펴보았습니다. 이번엔 그 연관관계의 심화과정이라 할 수 있는 1대N, N대1, 그리고 N대M관계에 대해 알아보겠습니다. 1대N 관계 우리가 휴게소에서 음식을 주문한다고 가정해봅시다. 고객이 음식을 주문할 때, 주문 정보는 고객 테이블에 들어가야할까요? 아님 음식 테이블에 들어가야할까요? 일단, 한 명의 고객이 여러 음식을 시킬 수 있으니 고객이 1, 음식을 N으로 하고 1대N 관계가 성립한다고 볼 수 있습니다. 아래 표와 같이 주문이 들어왔다고 생각해봅시다. 주문번호id 이름 음식id order0001 민수 food0001 order0002 영희 food0001 order0003 민수 food0002 고객 테이블에 주..
-
Spring MVC 간단 정리프로그래밍 언어/Spring 2023. 11. 20. 13:53
MVC란 Model View Controller의 준말로 코드를 model, view, controller로 각각의 역할을 분리하는 디자인 패턴입니다. 여기서 디자인 패턴이란 효율적으로 소프트웨어를 개발하기위한 여러가지 방법들을 일컫습니다. 간단하게, Model은 데이터와 비지니스 로직을 담당하고, View는 사용자와 상호작용하는 인터페이스를, Controller는 Model과 View를 조정하고 제어하는 중간다리 역할을 합니다. MVC패턴의 이점은 프로그램의 구성요소를 3가지로 분리함으로써 코드의 재사용성과 유지보수성을 높이고, 개발자들의 협력을 좀 더 용이하게 합니다. 그래서 현재까지 많은 개발자들과 회사들이 MVC패턴을 디자인 패턴으로 이용하고 있습니다. 그렇다면 Spring MVC는 무엇일까요? ..
-
(2023-11-08 TIL) IoC와 DI에 대하여프로그래밍 언어/Spring 2023. 11. 8. 17:23
건설업계에서는 튼튼한 건물을 짓기 위해 굉장히 엄격한 설계원칙과 디자인 패턴을 고수한다고 한다. 이는 한 사람의 단시간에 생각해 낸것이 아니라 여러 사람의 노하우와 기술이 합쳐져서 나온 최적의 건설 이론이라고 볼 수 있다. 코딩에서도 마찬가지로 튼튼하고 유지보수가 좋은 코드를 만들기 위해서 지켜야할 몇가지 설계원칙과 디자인 패턴이 있다. 오늘의 TIL 주제인 IoC(Inversion of Control)와 DI(Dependency Injection)이다. IoC(제어의 역전)이란? 애플리케이션의 흐름 조정(management of an application's flow)이 애플리케이션의 다른 부분으로 이전되는 경우, 연결성(pluggability), 테스트 가능성(testability), 유용성(usab..