test 해보기
목차 링크 목록 코드 블록 인용문 이미지 링크 구글에 가보세요. 목록 항목 1 항목 2 하위 항목 1 하위 항목 2 코드 블록 public class Main { public static void main(String[] args) { Sys...
목차 링크 목록 코드 블록 인용문 이미지 링크 구글에 가보세요. 목록 항목 1 항목 2 하위 항목 1 하위 항목 2 코드 블록 public class Main { public static void main(String[] args) { Sys...
들어가며 디자인 패턴이란, 클래스들 간의 관계를 어떻게 잘 연결할 것인지에 대해 이야기하는 것입니다. 생성 패턴 이러한 패턴들은 기존 코드의 유연성과 재사용을 증가시키는 다양한 객체 생성 메커니즘들을 제공합니다. 구조 패턴 이러한 패턴들은 객체들과 클래스들을 구조를 유연하고 효율적으로 유지하면서 더 큰 구조로 조립하는 방법을 설명합니다. 행...
들어가며 이번 포스트 에서는 Hash에 대하여 공부해볼 것입니다. Hash? 고정된 크기로 값을 바꾸는 함수 or 알고리즘 java에서 hash 키와 값의 쌍을 저장하는 데이터 구조입니다. 키는 고유한 식별자이며 값은 키와 연관된 데이터입니다. 해시 테이블이라고도 불리는 해시 구조는 데이터 검색 및 삽입 속도가 매우 빠르다는 장점이 있습니...
들어가며 이번 포스트 에서는 Hash에 대하여 공부해볼 것입니다. Hash? 고정된 크기로 값을 바꾸는 함수 or 알고리즘 java에서 hash 키와 값의 쌍을 저장하는 데이터 구조입니다. 키는 고유한 식별자이며 값은 키와 연관된 데이터입니다. 해시 테이블이라고도 불리는 해시 구조는 데이터 검색 및 삽입 속도가 매우 빠르다는 장점이 있습니...
들어가며 이번포스트에서는 DI - Dependency Injection 에 대해서 알아보겠습니다. DI 는 의존성 주입으로 객체를 만들 때 객체를 통해 객체를 생성하는 것이아닌 외부에서 객체를 생성해 사용한다는 개념에서 부터 시작합니다. 객체를 사용하는 방법 결국 차이점은 내부에서 만들어 하냐 - 외부에서 만들어서 주입을 받느냐의 차이점입...
들어가며 이번 포스트에서는 자바에서 String 에 대해 이해해 보려고합니다. String은 기본적으로 제공되는 변수 - 원시타입들과는 다릅니다. 원시타입 기본적으로 제공 하는 변수형 들을 말합니다. 정수 : btye short int long - 1 , 2 , 4 , 8 바이트로 이루어져있습니다. 사용 저는 특별한 제약조건이 있는 경우...
여러 프로세스/스레드를 동시에 실행해도 공유데이터의 일관성을 유지하는 것을 말한다. 동기화 (Synchronous) 한 작업이 완료될 때까지 다음 작업이 시작되지 않습니다. 예를 들어 줄을 서는 것과 동일합니다. A작업을 수행하고 이를 바탕으로 B작업을 할때 이를 동기방식 이라고 합니다. 프로세스, 스레드의 관점에서는 공유자원에 접근할 때 서로...
들어가며 이번 포스트에서는 뮤텍스와 세마포어에 대해 이해해 보겠습니다. 프로세스 혹은 스레드가 동시에 같은 공유 자원에 접근할 때 문제가 생기지 않도록 하는 방법이 필요한데요. 이때 동기화 방식으로 접근해볼 수 있습니다. 뮤텍스와 세마포어는 동기화 도구 입니다. 하나의 방법 정도로 이해하면 됩니다. 먼저 이해할 용어 공유자원 공유자원은 말그...
들어가며 IOC란 Iversion of Control : 의존 관계 주입 - (DI) 와 밀집한 관계를 가지고 있습니다. 객체가 사용하는 의존 객체를 직접 만드는 것이 아닌 주입 받아 사용하는 것을 말합니다. private final PostReposioty postRepository = new PostRepository(); 이런 식으로 만...
이미 정렬된 데이터 범위에 정렬되지 않은 데이터를 적절한 위치에 삽입시켜 정렬하는 방법입니다. 촤악의 경우 ,- O(n^2)으로 느립니다. 동작방식 주어진 리스트에서 가장 작은(또는 가장 큰) 요소를 찾습니다. 해당 요소를 리스트의 맨 앞 요소와 위치를 교환합니다. 정렬된 부분 리스트와 정렬되지 않은 부분 리스트로 나눕니다. 정렬된 ...
선택 정렬은 리스트를 순회하면서 가장 작은(또는 가장 큰) 원소를 선택하여 알맞은 위치로 이동시키는 방식으로 동작합니다. 핵심 남은 정렬부분에서 최솟값 또는 최댓값을 찾는다 남은 정렬 부분에서 가장 앞에있는 데이터와 선택된 데이터를 swap한다. 가장 앞에 있는 데이터의 위치를 변경해 남은 정렬 부분을 축소한다. 전체 데이터 크기만큼 인덱스가...
버블 정렬(Bubble Sort)은 간단하면서도 비효율적인 정렬 알고리즘 중 하나입니다. 이 알고리즘은 인접한 두 요소를 비교하여 필요한 경우 위치를 교환하는 방식으로 동작합니다. 여기서 각 패스(반복)마다 가장 큰 요소가 맨 끝으로 이동하므로, “거품이 물 위로 떠오르는 것과 같다”는 개념에서 유래하여 “버블(Bubble)”이라는 이름이 붙여졌습니...
들어가며 이번 포스트에서는 Process와 Thread에 대해 정리해봅니다. Process? 프로세스는 하나의 작업을 의미합니다. 프로그램이 동작하는 것을 프로세스라고 부르기도합니다. 예를 들어 밥을 먹는 일련의 과정 , 게임을 하는 일련의 과정 등 작업들을 의미합니다. 이런 식으로 표현해 볼 수 있습니다. 그리고 하나의 컴퓨터에서 동시...
들어가며 이번 포스트에서는 디자인 패턴에 대해서 알아보겠습니다. 글이 길어 패턴의 자세한 내용은 다음 포스트에서 다룹니다. 디자인 패턴이란? 소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위한 일반적인 해결책입니다. 개발자들이 반복적으로 발생하는 설계 문제들을 해결하기 위해 미리 만들어 놓은 청사진과 같다고 생각하면 됩니다. 에초에 디...
들어가며 이번 포스트에서는 어노테이션에 대해서 이야기 합니다. Spring 프레임워크를 쓰다보면 정말 많이 어노테이션을 쓰게 되는데요 이때 어노테이션이 무엇인지 잘 이해하고 쓰기보다는 단순히 붙여야 돌아가던데 라는 생각으로 처음에 접근하였습니다. 이전 포스트에서 OverLiding 에대한 이야기를 하며 @Override에 대해 이야기를 잠깐 ...
들어가며 이번 포스트에서는 SOLID 에 대하여 정리합니다. SOLID? SOLID는 객체 지향 설계에서 중요한 5가지 원칙을 의미합니다 각 글자는 이름의 첫글자를 따와서 지은 이름입니다. 이것을 잘 지키면 결합도는 낮추고 응집도는 올릴 수 있습니다. 결국 모듈, 클래스간의 상호 의존성은 낮춰 재사용성 , 수정 , 유지보수의 용의해집니다. ...
들어가며 이번 포스트에서는 세션과 토큰 쿠키의 대하여 알아봅니다. 웹서비스를 구축하다보면 세션과 쿠키 , 어플리케이션과 통신할 때는 토큰을 사용할 때 가 있습니다. 최근에 vue.js로 작업을 해보며 State management 라이브러리 를 사용하면서 세션과 쿠키를 활용한 정보전달 방식 뿐 아니라 다른 방법으로도 구현할 수 있다는 것도 알...
들어가며 이번 포스트에서는 colletions 중 하나인 Lists 에 대하여 알아보겠습니다. 개념 Lists는 순서가 있는 문자열 요소들의 컬렉션을 저장하는 데 사용됩니다. 각 요소는 인덱스로 식별되며, 리스트의 시작 또는 끝에 요소를 추가하거나 제거하는 등의 작업을 수행할 수 있습니다. 자바로 치면 ArrayList나 LinkedList와 ...
들어가며 이번 포스트에서는 Colletions에 대하여 이야기해보겠습니다. Colletions 컬렉션은 레디스에서 제공하는 다양한 데이터 구조를 말합니다. Strings: 가장 간단한 형태의 데이터 구조로 문자열을 저장합니다. 키와 값을 하나의 문자열로 저장하고, 여러 가지 연산을 수행할 수 있습니다. Lists: 순서가 있는 문자열 ...
들어가며 이번 포스트 Redis에 대하여 공부해보겠습니다. Redis 란 Remote Dictionary Server - 원격 사전 서버 메모리 내에서 데이터 구조를 저장하고 관리하기 위한 키-값 저장소 입니다. 오픈 소스의 인 메모리 데이터 저장소 라고 이야기 할 수 있습니다. 여기서 키-값 저장소는 여러 언어들에서 지원하는 Diction...
레디스의 대하여 설명하기 전 레디스 설치법을 알아보고 시작하겠습니다. 윈도우 기준으로 설명하겠습니다. 다운로드 https://github.com/microsoftarchive/redis/releases 여기서 msi 버전을 다운로드 해줍니다. 설치 간단하게 체크 하면서 필요 사항 있다면 수정해서 다운로드해줍니다. 이렇게 폴더에 들...
들어가며 이번 포스트에서는 결합도에 대하여 이야기 해보겠습니다. 결합도? 정보처리기사의 단골 문제이자 개념인 결합도 입니다. 결합도(Coupling)는 소프트웨어의 구성 요소들 간에 서로 얼마나 의존적인지를 나타내는 개념입니다. 높은 결합도는 코드를 변경하기 어렵게 만들고 유지보수를 어렵게 할 수 있으며, 재사용성과 유연성을 저하시킬 수 있습니...
들어가며 이번 포스트에서는 Interface에 대하여 정리합니다. Interface? 기존의 인터페이스가 가르키는 말은 다음과 같습니다. 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면 즉, 사용자가 기기를 쉽게 동작 시키는데 도움을 주는 시스템을 의미합니다. 이런 화면들도 인터페이스 화면입니다....
들어가며 이번 포스트에서는 OOP와 자바에서 활용하는 방법을 정리합니다. 원래 어노테이션에 대해 정리해보려고 했는데 해당 개념을 먼저 공부해보는 것이 이해하기 더좋다고 생각이 들어 먼저 정리했습니다. JAVA , C++ , Python 등의 많은 소프트웨어에서 지원하는 프로그래밍 방법입니다. 이번 포스트에서는 자바에서 어떤식으로 OOP 즉, 객...
6.JAVA-OverLoding & OverRiding 들어가며 이번 포스트에서는 overLoding 과 OverRiding에 대한 이야기를 해보려고 합니다. OOP 에서 다형성을 구현하는 두 가지의 중요한 개념입니다. OOP - 다형성 Polymorphism 다형성 (Polymorphism)은 이전 포스트에서 간단하게 정리하여서 개념...
5.JAVA-스레드 들어가며 이번 포스트에서는 스레드에 대한 포스트 입니다. 사실 한번쯤은 모두 공부해본 내용이지만 , 정리도하고 java에서는 어떻게 활용할 수 있는지에 대한 이야기도 함께 하겠습니다. 스레드? 프로세스 내에서 실행되는 독립적인 작업 단위이며 여러 스레드가 하나의 프로세스에서 동작할 수 있습니다. 그리고 스레드는 자체적인 ...
문제는 자바를 이용해 풀어보겠습니다! 들어가며 이번 포스트에서는 탐색 기법에 대한 이야기를 해보려고 합니다. 알고리즘은 공부를 하면 할 수록 더욱 깊고 , 다양한 조합을 만들 수 있기 때문에 기본적이며 핵심적인 이야기들을 위주로 공부해본 내용을 정리하겠습니다. DFS - 깊이 우선 탐색 DFS : depth first search 는 완전 탐...
들어가며 이번 포스트에서는 Java가 메모리를 어떤식으로 활용하는지에 대한 이야기를 정리해보려고 합니다. 자세하게 생각하면 끝도 없는 영역이기 때문에 아 이런식으로 동작하는 구나 정도의 수준의 정리 내용입니다. 언어들은 메모리를 어떻게 쓸가? Java와 같이 컴파일러를 통해 기계어를 만들어 사용하는 언어들은 아래 그림처럼 코드를 실행하는 영역...
들어가며 이번 포스트 에서는 자바가 동작하는 구동 과정의 대해 정리해 보려고 합니다. 자바가 매력적인 이유 중 하나인 구동 과정에 대한 이야기는 매우 흥미롭습니다. 자바는 어떻게 보여지나 제가 정리하면 이미지를 보시면 크게 3가지의 소프트웨어를 통해 동작한다는 것을 볼 수 있습니다. JDK = 개발도구 , JRE = JVM용 OS , JVM...
객체 와 동작에 대한 이야기 이번 포스트에서는 객체에 대해 이야기 해보겠습니다. 필자 개인적으로 객체는 이해했다고 생각하면 뭔가 틀리는 경우도 있어서 이번 포스트를 적어보며 정리하는 시간을 가져봅니다. 객체? 자바에서 객체지향은 매우 중요한 개념입니다. 객체 지향 즉, 객체를 만들어서 사용하는것을 지향한다. 인데 여기서 객체를 정리해보면 이...
들어가며 JAVA에 대해 공부하며 배운 것들을 정리하고 생각한 것들을 정리하는 포스트 입니다. 개발자들이 많이 사용하는 언어가 궁금해 찾아보다 해당 사이트를 확인했습니다. https://www.tiobe.com/tiobe-index/ Python , c 계열 , 자바 가 50 퍼센트 가량 비율을 차지하고 있습니다. 특히, 대한민국에서는 정...
들어가며 이번 포스트 에서는 설정을 할것입니다. 레포지토리를 만들어 업로드하는 과정들은 워낙 정보가 많으니 실제로 사용하는 법을 보여드리겠습니다. 예를들어 git add -A , git commit -m “first” 이런 코드들을 주는 것은 대체 블로그가 많습니다. 저는 이렇게 사용합니다. 최근 IDE 가 발달하고 Git을 대부분 지원하기 ...
들어가며 깃 , 깃허브는 개발자가 반드시 알아야 되는 필수 기술 중 하나라고 생각합니다. 현재 개발자들이 애용하고 있고, 기업에서도 사용하고 있습니다. 또한 , 많은 기능이 있어서 한 사이트 , 기술 스택에서 다양한 활동을 진행할 수 도 있습니다. 포스트를 하며 여러 기술들에 대해 공부한 내용을 공유해 보려고 합니다. 그래서 Git이 뭔데? ...