전체 글
-
변수 개념과 활용 방법에 대해 알아보자프로그래밍 언어/Java 2024. 2. 28. 11:02
자바를 활용하기 앞서, 자바를 사용하기 위해 알아야할 기본적인 개념에 대해 알아보자. 가장 기초적으로 알아야할 부분은 바로 변수에 대한 개념이다. 변수란 값이 변할 수 있는 저장공간이다. 변수 선언은 아래와 같이 사용할 수 있다. int number = 10; //1. 초기화 int a; //2. 선언 후 덮어쓰기 a = 1; 상수란 값이 변하지 않는 저장공간이다. 상수 선언은 아래와 같이 사용할 수 있다. fianl int PI = 3.141592; //상수 선언 PI = 4; //새로운 값으로 대입시 에러 발생 위에서는 설명 없이 int라는 기본형 변수를 사용했지만, 변수들은 그냥 단독으로 사용할 수 없다. 모든 변수의 이름 앞에는 변수의 타입이 선언되어야한다. a = 10; // 변수의 타입이 없어..
-
Stack과 Queue에 대해 알아보자알고리즘&자료구조 2024. 2. 27. 12:24
이번에는 Stack과 Queue에 대해 알아볼 것이다. Stack과 Queue는 순차적 자료구조에 속한다. Stack은 택배화물을 쌓아 놓은 것으로 이해하면 쉽다. 먼저 들어온 것이 가장 나중에 나가는 방식인데, 이를 흔히 FILO(선입후출)방식이라고 한다. Queue는 종이컵을 뽑는 장치를 생각하면 쉽다. 먼저 들어온 것이 가장 먼저 나가는 방식인데, 이를 흔히 FIFO(선입선출)방식이라고 한다. Java에서 이 두 자료구조를 사용하려면, import java.util.*; 을 사용하면 된다. 엄밀히 말하자면, 위의 코드는 Stack과 Queue를 포함한 자바에서 지원하는 모든 자료구조를 불러온다. Stack에는 크게 3가지 메서드가 있는데, 값을 넣는 push, 값을 빼는 pop, 자료구조에 영향을 ..
-
JVM? JDK? JRE? 개념을 정확히 알아보자프로그래밍 언어/Java 2024. 2. 27. 10:05
JVM(Java Virtual Machine)이란? 자바 가상 기계라는 뜻을 가지고 있다. 자바 파일을 실행시키기 위해 필요한 것으로써, 어떤 운영체제에 구애 받지 않고 자바 파일을 실행가능하도록 만든다. .java 파일이 작동하기까지 흐름? .java파일을 컴파일러를 통해 .class파일로 변환 Java Virtual Machine에서 구동 JVM의 구성? JVM은 대표적으로 아래의 기능들로 구성되어 있다. 바이트코드 :: java compiler를 통해 .java파일을 변환한 .class파일 인터프리터 :: .class파일을 기계가 이해할 수 있는 기계어로 변환하는 기능 **JIT 컴파일러 :: 빠른 Java .class 코드 해석기...라고 하는데 이부분은 아직 이해가 되지 않았다. 가비지 컬렉터 ..
-
Java 언어에 대한 이해프로그래밍 언어/Java 2024. 2. 26. 22:16
백엔드 개발자를 지향한다면 내가 쓰는 언어에 대한 이해는 필수라고 생각한다. 그렇다면, Java의 개념과 배우려는 이유를 명확히 해야한다. 이번 포스팅에서 Java를 배우는 목적과 Java언어의 특징에 대해 적어볼 생각이다. 1. Java의 핵심 기능 Java는 C언어의 기능, 공통 실행환경, 클래스 그리고 객체를 지원하는 프로그래밍 언어이다. C언어의 기능으로는, 입/출력, 문맥 기계식 데이터 타입 연산 기능 메서드 자료형 데이터 타입 자료구조 이 있다. 이는 A언어, B언어로부터 계승된 기능을 포함한다. 2. Java를 배우는 목적 대한민국에서 가장 많이 사용되는 언어이다. 객체 지향 언어이다. 보안성이 높다. API를 통한 대규모 어플리케이션 개발이 가능하다. 다양한 개발도구와 라이브러리를 지원한다..
-
프로그래머스) 피로도코딩테스트 문제 2024. 2. 23. 15:49
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 완전탐색(dfs)를 사용하는 문제이다. 문제에서 명시를 해놔서 망정이지 dfs를 몰랐던 나에게는 귀중한 시간을 날려버릴뻔했다. 문제 풀이에 앞서 dfs를 어떻게 적용했는지 살펴보자. 아직도 dfs는 생초짜이기 때문에 다른 분들의 코드도 많이 참고했음을 이해바란다. // 1차 고민 1. 피도로 k와 dungeons[i][0]을 비교하고 k가 많으면 진행한다. 2. 진행하면서 k - du..
-
프로그래머스) 숫자 변환하기코딩테스트 문제 2024. 2. 23. 13:41
https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 정답까지 필요한 최소 연산 수를 구하는 문제이다. 그래서 처음 생각해낸 알고리즘 방법은 bfs였다. 문제를 풀기 앞서 먼저 과정을 생각해보자. // 1차 고민 1. y값과 x값을 비교한다. 2. 같지 않으면 연산한다. 3. 연산값이 y를 넘어서면 답이 일치하는것이 없으므로 종료한다. // 2차 고민 1. bfs로 스택에 넣어서 관리한다. 2. 중복연산을 피하기 위해 visited를 s..
-
BFS에 대해 알아보자알고리즘&자료구조 2024. 2. 23. 12:25
목차 1. BFS 란? 2. BFS는 언제 사용할까? 3. BFS는 어떻게 사용할까? 4. BFS는 왜 사용할까? 5. BFS의 장점, 단점 1. BFS란? BFS는 Breadth Frist Search의 약자로 너비 우선 탐색이라는 의미를 지닌다. 책에서는 가까운 노드부터 탐색하는 알고리즘이라고 쓰여져있는데, 이를 쉽게 풀어 예시를 들면 아래와 같다. 물론, 예시는 정의와 100%일치하는 것이 없으므로 맥락을 이해하는데에만 참고해야할 것이다. 철수가 갈림길이 무수히 많은 어딘가에 떨어져 집을 찾으려고 하고 있다. 갈림길은 모든 분기점에서 무조건 a, b, c 세개로 나누어진다. 가정으로 철수의 집이 c-a에 있다고 가정해보자. 이 전제 조건으로 집을 빠르게 찾을 수 있는 알고리즘인 BFS를 사용해보자...
-
최종 프로젝트 진행 리뷰 #1) 프론트를 개발하기프로젝트 2024. 1. 19. 11:06
최종 프로젝트 진행중에 해야할 일들을 정리 & 리뷰를 진행해보겠습니다! 현재 비지니스 로직을 어느정도 끝내 놓은 상태에서 프론트엔드 view 파트 쪽으로 들어간 상황인데, 팀원들 과 저 모두 프론트 쪽에 이해가 부족한 상태여서 시간이 부족한 상태입니다. 일단, 제가 생각하는 기초적인 프론트개발을 위해 필요한 것은 아래와 같습니다. 명확한 와이어프레임: 사이트를 실체화하기 위한 고민을 끝내게 되고 실제 기능들을 어떻게 정리할 수 있을지에 대해 덜 고민하게 됩니다. 부트스트랩 활용하기: 이미 만들어진 디자인으로 쉽게 구성을 맞출 수 있습니다. thymeleaf 활용하기: thymeleaf를 통해 intellij에서 바로 구현을 확인할 수 있게됩니다. 완성된 부분은 와이어프레임 쪽인데, 부트스트랩을 사용하더라..