본문 바로가기

분류 전체보기74

[Data Structure] Stack(스택) 자료구조란? -Java Stack 자료구조란 무엇인가? - Java 1. 스택이란? - 'Stack'은 한쪽 방향에서만 자료를 넣고 빼는 형태의 자료구조이다 - LIFO(Last In First Out) - 선입후출 의 특징을 갖고 있으며, 제일 먼저 들어간 데이터는 제일 마지막에 꺼낼 수 있다는 의미를 가진다. - 이해하기 쉬운 예시로 -> '프링글스' 과자를 상상하면 쉬울 것이다. 제일 먼저 들어간 과자는 제일 마지막에 먹을 수 있게 되는 방식인 것이다. - Stack이 많이 사용되는 곳은 - DFS(깊이 우선 탐색)이다. 2. Java Stack 라이브러리 Mehtods push(object) : object를 Stack 에 삽입한다. pop() : stack에 있는 최상단 object를 삭제 하고 반환한다. peek().. 2023. 1. 16.
[Java] Stack 2개로 Queue 처럼 사용하기 java - Stack 2개로 Queue 구현하기 - 사실 Stack 2개로 Queue 처럼 구현할 일이 있는지는 잘 모르겠다... (그냥 Queue를 사용하면 되는 부분) 하지만 상황에 따라 Stack을 Queue 방식으로 구현해야 할 수도 있고, 필자의 기준에서는 신박한 내용이었기에 구현과 포스팅을 해보려 한다. - 자료구조에서 Stack, Queue 라는 개념을 한번쯤은 들어봤을 것이다! 간단하게 얘기하자면 Stack : 선입후출(FILO), 처음에 넣은 요소가 제일 마지막에 나오는 것이고 Queue : 선입선출(FIFO), 처음에 넣은 요소가 처음으로 나오는 것이다. 방법 목표 : 숫자 1,2,3,4 를 차례로 추가하고 1,2,3,4 순서대로 출력하는 것. 1. Stack이 A,B 2개가 있다고 .. 2023. 1. 13.
[Linux] Linux(Unix) 2038년 문제 - Y2K38 새해가 되면 많은 개발자, IT 업계에 종사하고 있는 사람들은 Linux 2038년 문제에 대해서 이야기를 나누고는 한다. 2023년인 현재에 비해서는 15년이나 남았다. (하지만 하루하루 살다보면 2038년은 금방 올 수 있기 때문이다...!) 그렇다면 Linux 2038년 문제는 무엇일까? [문제] 32bit 운영체제를 사용하는 OS(Linx,Unix)는 2038/01/19 03:14:07초 를 지나게 되면 1901/12/31, 혹은 1970/01/01 시점으로 타임슬립하는 문제이다. 정식 명칭은 Y2K38, Y2038 라고 한다. - 문제 원인 컴퓨터에서 '그레고리 력' 시간을 계산하는 방법에는 여러가지가 있는데, 현재 보편적으로 사용하는 방법은 Unix Time을 사용한다. 해당 방법은 -> 32.. 2023. 1. 4.
[IntelliJ] active profile 설정 하기 (Ultimate & Community) IntelliJ (Ultimate, Community)에서 active profile 설정 하는 방법 IntelliJ IDE를 사용해서 Spring Boot 환경에서 개발하다 보면 profile 별로 실행을 해야 할 때가 존재한다. profile 별로 실행 할 때 마다, application.yml 설정을 변경하면서 하는 것은 굉장히 힘든일 일 것이다. 하지만, 실행 환경을 설정을 저장 해놓고 원하는 profile 별로 실행을 한다면 굉장히 편하지 않겠는가? - IntelliJ에서는 버전에 따라 active profile을 설정하는것에 대한 차이가 존재한다! - 만약 Profile 설정에 대하여 알고싶다면 아래의 링크에서 확인하고 오면 좋을것 같다! https://lucas-owner.tistory.co.. 2023. 1. 2.
[SpringBoot] Gradle Jar 빌드 & 실행 (IntelliJ, Terminal) Spring-Boot + Gradle 사용하여 Jar 파일 빌드 & 실행 방법 웹개발을 진행하다보면 만들어놓은 코드들을 빌드하여 배포까지 진행을 한다. 이때 사용하는 방법중 하나인 Jar 파일 빌드 후 실행 까지 테스트 하는 것을 알아보도록 하자! 필자는 Mac OS를 사용하며, IntelliJ Ultimate 버전 사용중이다. - Jar 파일을 빌드하는 방법은 IDE를 이용하는 방법 + 터미널을 사용하는 방법이 존재한다. * Jar 파일을 빌드하고 배포하는 이유? - 빌드 파일은 Jar/War 2가지가 존재하며 각각의 방식은 코드(애플리케이션)를 패키징 하는 방식의 차이이다! 각 프로젝트에 맞게 선택 하여 빌드를 진행 하면 된다! 해당 내용은 본문에서는 깊게 다루지 않겠다. 필자가 생각하는 차이는 아래.. 2022. 12. 31.
[spring boot] spring-boot profiles설정 & jar 실행시 프로파일 선택 spring-boot 프로파일 설정 및 jar 실행시 프로파일 선택하는 방법 목차 1. 프로파일 설정이유 2. 운영환경 3. yml 전체 코드 4. 프로파일(profiles) 설정 방법 5. Jar 실행시 프로파일 설정 방법 6. IntelliJ 에서 프로파일 지정 후 자동 실행 방법 프로파일을 설정하는 이유? Spring boot로 개발을 진행 하다보면, 상황에 따라 설정을 수정할 것들이 많아진다 ! 예를들면 운영환경, 개발환경(Local) 이와 같이 두개의 환경이 다른 경우가 있다! 제일 많이 다루는 설정이라 하면,, 보통 DB 선택과 설정이다! yml(properties)를 잘 몰랐을 때는 일일히 주석으로 막아가며 테스트와 운영개발을 진행했었다.. 하지만 프로파일 설정을 알게 된다면 개발을 좀더 편.. 2022. 12. 29.
[Java] DTO <-> Entity 변환(ModelMapper & method & ModelMapper List 바인딩) * 정답이 아닐수 있으며 제가 사용하는 방법들에 대해 설명할 예정입니다! DTO Entity 변환 Entity 와 DTO는 분리하여 사용하는것이 좋기 때문에 분리해서 사용하다 보면 각 객체간에 어떻게 변환을 하는지에 대해서 의문점이 생길것이다. 구글링을 조금만 하더라도 여러가지 방법들이 보이기 때문이다..! 1. DTO 내부 메서드로 값을 전달하는 방법. 2. Model Mapper 라이브러리를 사용하는 방법. 3. JPA사용시 Repository에서 직접 조회하는 방법 이 글에서는 3번을 제외하고 설명 해볼 생각이다. - DTO, Entity 내부 편의 메서드 작성법 - Model Mapper 단건 바인딩. - 다건(List) 바인딩. (Model Mapper List 바인딩.) Entity DTO 분.. 2022. 12. 22.
[Java] DAO, DTO, VO, Entity 란? 웹 개발을 하다 보면 DAO, DTO, VO, Entity라는 단어들을 많이 접하게 된다. 해당 개념을 잘 잡아놔야 협업시에 문제가 없을 것 같다. DAO - DAO란 Data Access Object 의 약자이며 이름 그대로 DB의 data에 접근하는 객체 이다. 비즈니스 로직과, DB Access 로직을 분리하기 위해 사용된다. - Java Spring을 기준으로 DAO는 여러 가지의 모양새를 취하고 있는걸 알 수 있을것이다. 여러가지 모양새라 함은 DAO에 DB Connection이 설정되어 있는 경우, 아닌 경우로 나눌 수 있다. - 많이 사용하는 MyBatis의 경우 DB Connection 정보를 root-context.xml이라는 파일에 정의한다. - JPA 같은 경우는 application.. 2022. 12. 22.
[Git] Local 프로젝트 GitHub(원격저장소) 연결 GitHub Repostiory 연결 - 이 글에서는 Local 프로젝트를 -> GitHub(원격저장소)에 연결 하는 방법을 담고 있습니다. - Local 프로젝트를 깃헙과 연결하는 이유는 여러가지가 존재한다. 다른 사람들과의 협업을 위한 경우도 될 수 있고. 혼자 작업하더라도 저장소를 따로 두어 관리 및 이력을 남길 수 있기 때문이다. (코드를 일정 시기로 rollback 시킨다던가.. 등등) Git 연결하기 1. 프로젝트 폴더로 이동 cd [프로젝트명] 2. git 초기화(생성) - 해당 작업은 프로젝트 폴더내에 Git이 존재하지 않기 때문에 Git이 관리할 수 있도록 해주는 작업이다. git init 3. GitHub 프로젝트 생성 및 연결 3-1 GitHub Repository 생성 3-2 rep.. 2022. 12. 19.