본문 바로가기

전체 글

(36)
.equals(), == 비교 면접에서 equals와 ==의 차이점에 대해 설명해달라는 질문을 받은 나는 그만 벙쪄버렸다.분명 알고 있는 개념이라고 생각했는데 막상 설명하려고 하니 말문이 턱 막혀버린 것이다. 이처럼 알고 있다고 생각하는 개념들이 생각보다 많은데 앞으로 직접 설명해보면서 모르는 것 같은 개념들에 대해 다시 정리해보고자 한다. 첫번째는 가장 최근에 질문 받았던 .equals와 == 의 차이점에 대해 알아보고자 한다. 원래 알고 있던 내용으로 설명해보자면 .equals 는 String 끼리의 비교에서 사용되고 == 은 값 자체를 비교하는 것이라 다른 것들을 비교할 때 사용된다는 느낌으로 알고 있었는데, 이처럼 실제로 말로 해보니 전혀 개념에 대해 제대로 파악하고 있지 않다는 것을 알았다. 그럼 이제 실제 .equals와..
개발자 면접 질문 정리 1 1. HTTP METHOD에 대해 설명해 보세요.HTTP METHOD에는 get, post, put, delete 가 있습니다.단순히 종류를 나열하는 것이 아닌, get과 post 간의 차이점에 대해 말할 수 있어야 합니다.get은 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 method입니다. 즉, 서버에서 어떤 데이터를 가져와서 보여줄 때, 값이나 내용, 상태 등을 바꾸지 않는 경우에 사용합니다.post는 리소스를 생성/ 업데이트하기 위해 서버에 데이터를 보내는 데 사용되는 method입니다. 서버상의 데이터 값이나 상태를 바꾸기 위해서 사용합니다.주요 차이점으로는, get 요청은 캐시가 되나, post는 캐시 되지 않습니다. get은 브라우저에 기록되지만 post는 기록되..
정사각형으로 만들기 - Programmers 프로그래밍을 하다 보면 문제 자체보다도 그 문제를 해결해 나가는 과정에서 더 많은 것을 배우는 경우가 많습니다. 이번 포스팅에서는 제가 직접 겪었던 시행착오를 공유하고자 합니다.문제는 다음과 같았습니다.📌 문제 설명정수형 2차원 배열 arr이 주어질 때,행(row)의 수가 더 많다면: 각 행의 끝에 0을 추가하여 열(column)의 수를 행 수와 같게 만든다.열(column)의 수가 더 많다면: 행을 추가하여 행의 수를 열 수와 같게 만든다.결과적으로, 정사각형 형태의 2차원 배열로 만들어 반환하는 문제입니다.예를 들어,arr = { {1, 2, 3}, {4, 5, 6}}는 행이 2, 열이 3이므로 행을 하나 더 추가하여 아래와 같은 형태로 만들어야 합니다.result = { {1, 2..
정수를 나선형으로 배치하기 - Programmers 🔎 문제 설명양의 정수 n이 주어졌을 때,1부터 n^2까지의 숫자를 시계방향 나선형으로 n x n 배열에 채워야 합니다.예를 들어 n = 4라면 다음과 같이 채워져야 합니다:[ [ 1, 2, 3, 4], [16, 17, 18, 5], [15, 24, 19, 6], [14, 13, 12, 7] ] 💡 먼저 직접 써보았습니다문제를 처음 봤을 땐 조금 막막했지만, 실제로 손으로 배열을 따라가며 인덱스를 그려보았습니다.00 -> 01 -> 02 -> 03 ↓ 13 -> 23 -> 33 ↓ ↑ 32 -> 31 -> 30 ↓ 20 -> 10 → ↓ 11 -> 12 -> 22 -> 21 위처럼 시계방향으로 돌면서 한 칸씩 숫자를 채우는 형태입니다.중복해서 방문하지 않도록 경계를 점점 줄여가면 되겠다는 생각이 들었..
[Java] 조건에 맞게 수열 변환하기 3 - Programmers 🔎 문제 설명정수 배열 arr과 자연수 k가 주어집니다.k가 홀수라면 arr의 모든 원소에 k를 곱합니다.k가 짝수라면 arr의 모든 원소에 k를 더합니다.이후 변환된 배열을 반환하는 solution 함수를 작성하세요.✨ 초기 풀이처음에는 아래와 같이 for-each 반복문 안에서 조건문을 돌리며 구현했습니다:class Solution { public int[] solution(int[] arr, int k) { int i = 0; int[] answer = new int[arr.length]; for (int n : arr) { if (k % 2 == 0) { answer[i] = n + k; ..
Elasticsearch 써보자(2) 저번에 설정도 끝났으니 이번엔 실제로 어떤 식으로 사용하는지 데이터는 어떻게 들어가고 어떻게 검색되는지 알아볼까 합니다. Kibana에서 간편하게 인덱스를 생성하고 여러 데이터를 다뤄볼 수 있는데요. 키바나 화면 상 왼쪽 위의 메뉴에 들어가서 스크롤을 제일 아래로 내리면 Management의 Dev Tools에 들어갑니다. 왼쪽은 내가 입력할 코드 오른쪽은 결과가 나오는 화면 입니다. 여기서 여러 실습을 진행해보겠습니다. 실습하기 전에 ElasticSearch의 특징에 대해 자세히 알아보고자 합니다. 💡 Elasticsearch의 주요 특징✅ 1. 역색인(Inverted Index) 구조Elasticsearch의 검색 속도가 빠른 이유는 역색인(inverted index) 구조 덕분입니다.우리가 일..
Elasticsearch써보자(1) 🔍 엘라스틱서치(Elasticsearch)란?Elasticsearch는 오픈소스 기반의 분산 검색 및 분석 엔진입니다. 대량의 데이터를 거의 실시간으로 저장하고 검색하는 데 강점을 가지고 있으며, JSON 기반의 RESTful API를 통해 다양한 언어 및 시스템과 연동이 가능합니다.📌 주요 특징고속 검색 및 분석: 정형, 비정형 데이터를 빠르게 검색하고 시각화할 수 있음분산 구조: 수평 확장이 가능하여 수많은 데이터를 안정적으로 처리할 수 있음RESTful API: 간단한 HTTP 요청으로 데이터 삽입, 조회, 삭제 등 수행 가능ELK 스택의 핵심 구성요소 (Elasticsearch, Logstash, Kibana 중 E)📦 어디에 쓰일까?로그 수집 및 분석 (ex. 서버 로그)검색 엔진 (ex...
Spring Test 혼자서 작업할 땐 몰랐지만 팀으로 프로젝트를 경험하다보니 느낀점이 있다. 아무리 역할을 나누더라도 서로 필요한 부분이 있고 이 때, 소통이 원할하지 않으면 큰일이 날 수 있다는 사실, 그리고 다른 팀원이 코드를 바꿨을 때, 내 로직에 영향이 간다면 왜 오류가 생기는지 찾는데 정말 많은 시간을 소모할 것이다. 또한 나의 작업 진행도와 완성된 결과물이 어떻게 동작하는지 보여주기 위한 케이스가 필요하다는 것을 느꼈다.  이런 부분을 생각하지 않고 개발한 코드를 레거시 코드라고 하는데, 주석이 없어 파악이 어렵고, 테스트 코드가 없는 문제 등으로 개발자가 건들기 무서워하는 코드가 되어버린다고 한다. 이렇게 개발하고 싶지 않다면 내 코드가 어떠한 상황에서 동작이 잘 되는지, 어떤식으로 동작하는지 보여주기 위한 테..