이번 포스팅은 Java에서 배열을 자르는 2가지 방법에 대해 소개한다. 1️⃣ 반복문 이용 2️⃣ Arrays.copyOfRange() 이용 반복문 이용하기 public class ArraySplit { public static void main(String[] args) { // 원본 배열 int[] arr = {0, 1, 2, 3, 4, 5}; // 배열을 자를 index int position = 3; // 자른 배열을 담아줄 새로운 배열 int[] splitArr = new int[position]; // 배열 자르기 for (int i = 0; i < arr.length; i++) { if (i < position) { splitArr[i] = arr[i]; } } System.out.print..
전체 글
추상클래스가 무엇이고 왜 사용하는지 알아보자. 추상클래스란? 추상클래스가 뭘까? A 클래스, B 클래스, C클래스가 있다고 했을 때, 각 클래스 안에는 각자의 필드와 메소드가 있을 것이다. 추상클래스는 A 클래스, B 클래스, C 클래스 간에 비슷한 필드와 메소드를 공통적으로 뽑아내 만들어진 클래스다. 예를 들어 "키보드"라는 클래스가 있다. 이 "키보드"를 만드는 제조사는 여러개이다. A 제조자, B 제조사, C 제조사는 각 제조사만의 스타일대로 키보드를 제작하고 제품을 출시한다. 이때 A 제조사는 키보드를 누를 때마다 불빛이 들어오고, B 제조사는 키보드를 누를 때마다 딸각거리는 소리가 나고, C 제조사는 키보드를 살짝만 눌러도 잘 눌리는 특징을 가진다. 이 키보드들 간에 공통점이 있을까? 바로 "키..

자바는 어떻게 실행되나요? 컴파일러가 자바 소스코드를 바이트코드로 변환합니다. 그 다음 JVM의 클래스 로더가 바이트 코드를 런타임 데이터 영역에 로드시키고, 로딩된 바이트 코드가 JVM의 실행엔진에 의해서 실행되게 됩니다. 더보기 💭 해당 질문의 배경 지식 💡 자바 실행환경 자바는 운영체제(OS)에 종속적이지 않다는 특징을 가진다. 운영체제에 종속받지 않고 실행될 수 있는 이유는 운영체제 위에서 자바를 실행시키는 JVM이 있기 때문이다. 자바의 JVM은 운영체제에 종속받지 않고 자바를 실행할 수 있게 하는 가상 머신이다. JVM은 운영체제에 종속적이므로, 각 운영체제에 맞는 JVM을 설치해야한다. 그럼 어느 운영체제든 Java 파일 하나만 만들면 각자의 운영체제에 맞는 JVM 위에서 실행할 수 있게된다..

REST API는 프론트엔드 개발자, 백엔드 개발자 모두 꼭 알고 있어야 하는 개념이다. 나 또한 정말 많이 들었는데, 그 개념이 아리송한 부분이 있어서 공부를 하다가 초보자인 나에게 아주 쉽게 다가온 유툽 영상이 있어서 내용을 까먹지 않기 위해 정리해보려고 한다. 들어가기 앞서.. REST API는 정보들이 주고받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식이라 할 수 있다. 예를 들어 우체국에 가면 송장들이 마련되어 있고, 사용자들은 그걸 채워넣기만 하면 되는 것처럼 REST API도 어떠한 기술이나 제품이 아닌 형식이기 때문에 어떤 프로그래멍 언어를 쓰든, 어떤 프레임워크를 쓰든 REST API라는 형식에 맞춰 기능을 만들어내면 되는 것이다. 그럼 일단 API라는 용어부터 간단하게 알아..
📝 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💻 풀이 class Solution { public static int solution(int[] numbers) { int sum = 0; boolean[] arr = new boolean[10]; for (int number : numbers) arr[number] = true; for (int i = 0; i < arr.length; i++) if (arr[i] == false) sum += i; return sum; } public static int solution2(int[] numbers..
JWT는 Authentication(인증)보다는 Authorization(인가)와 연관된 기술이다. 로그인을 구현함에 있어서 로그인된 상태가 유지되도록 하는 것은 매우 중요하다. 어떤 사이트나 서비스에 사용자가 로그인해있다는 사실을 서버가 인지할 수 있도록 하는 방법을 어떤 것이 있을까? Session 우선 기존에 많이 사용하던 세션 방식을 생각해보자.사용자가 로그인에 성공하면, 서버는 Session ID라는 걸 발급한다. 쉽게 비유를 해보자면 Session ID를 영화티켓이라 보고, 서버는 영화티켓을 발급한뒤 반쪽은 사용자의 브라우저(클라이언트)로 보내고 반쪽은 자기 책상, 즉 메모리에 올려두는 것이다. (경우에 따라서는 서랍인 하드디스크나, 창고인 데이터베이스에 올려두기도 한다.) 이때 표 반쪽을 ..

쿠키와 세션은 누구나 한번쯤은 들어본 단어일 것이다.하지만 그 개념에 대해서는 헷갈리는 경우가 많아 간단하게 정리해보려고 한다. HTTP에서 쿠키와 세션을 사용하는 이유HTTP 프로토콜의 특징이자 약점을 보완하기 위해 쿠키 또는 세션을 사용한다.현재 우리가 인터넷에서 사용하고 있는 HTTP 프로토콜 환경은 connectionless, stateless한 특징을 가지기 때문에 서버는 클라이언트가 누구인지 매번 확인해야 한다는 문제가 있다. 이러한 문제를 해결하기 위해 쿠키와 세션을 사용한다. 예를 들어 쿠키와 세션을 사용하지 않고 HTTP 연결만으로 사이트를 구성한다면, 쇼핑몰에 옷을 구매하기 위해 로그인을 했음에도 페이지를 이동할 때 마다 로그인 정보가 유지되지 않아 계속 다시 로그인을 해야 한다.따라..
깃허브에 올라가지 않아야 할 파일까지 push해버린 경우가 종종 있을 것이다. 이때 이미 올라가 있는 파일은 뒤늦게 .gitignore에 추가해준다 해도 삭제되지 않는다. 이런 경우 올라간 파일을 .gitignore에 적용해 삭제하는 방법을 정리해보려고 한다. 올리고 싶지 않은 파일을 .gitignore에 추가하고 커밋한다. 레포지토리에서 잘못 올라간 파일의 캐시를 삭제한다. git rm -r --cached . 다시 git add .를 해준다. git add . 마지막으로 커밋하고 깃허브에 push 해준다.