분류 전체보기 102

취업 한달반 회고

회사 다닌지 한달 반이 되었다.KB에서 진행한 부트 캠프를 수료하고 본가에 와서이것 저것 지원 조금 해보다가그 중 한군데에 취업해 다니게 되었다. 원래는 백엔드를 준비하다가 윈폼, 오라클, C언어 개발하고 있으니내가 하고 싶은건 하고 싶은거고 직장은 직장이다라고 조금 느꼈다. 그리고 데이터베이스 쿼리 짜고 관리하는게 엄청 힘들다고 느꼈다.inner select도 많고 많은 테이블들이 연관되어 있는데 각 테이블 컬럼도 기억하기 어렵다.이전 분들이 만든 테이블을 유지하면서 활용해서 뭔가 기능 변화하려면고려하기 어렵다는 것을 많이 느꼈다.이 데이터를 변경했을때 이 방대한 다른 프로그램들에 문제가 없을지... 나는 개발을 좋아하는거라 윈폼 만드는것도 재밋어서어느정도 만족하는 직장이라 생각한다. 다만 한번씩 웹앱..

회고 2025.03.17

Spring Test code 같은 함수 중복시

테스트 코드를 작성하는데 이처럼 serviceImpl 로직에서 같은 함수를 매개변수를 다르게 해서 호출하는 상황이었다.따라서 두번 코드를 작성했는데 해결이 안되었는데when(financeService.getAssetSummeryByDateBefore(uid, goal.getDate())).thenReturn(oldDateAssetSum);when(financeService.getAssetSummeryByDateBefore(uid, any(Timestamp.class))).thenReturn(todayAssetSum); 함수 호출 순서에 따라서 결과값을 다르게 해줄 수 있었다. when(financeService.getAssetSummeryByDateBefore(eq(uid), any(Date.class)..

Spring boot 2024.12.16

CS 스터디 회고 - 운영체제 1

1. 시스템 콜이 무엇인지 설명해 주세요운영체제는 컴퓨터 자원들을 효율적으로 관리하며 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램들의 모임입니다.여기서 커널이란 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이때 메모리에 상주하는 운영체제의 부분을 kernel(커널)이라고 한다서로 다른 시스템 콜을 어떻게 구분할 수 있을까요?각 시스템 콜에는 번호가 할당 되고시스템 콜 인터페이스는 시스템 콜 번호와 시스템 콜핸들러 함수 주소로 구성되는 시스템 콜 테이블을 유지한다.운영체제는 자신의 커널 영역에서 해당 인덱스가 가리키는 주소에 저장되어 있는 루틴을 수행한다.작업이 완료되면 c..

Java 2024.12.01

Java 면접(인터뷰) 스터디 회고 3

13. Spring 에서 Interceptor와 Servlet Filter에 대해 설명해 주세요.Filter는 Dispatcher Servlet 에 요청이 전달되기 전후에 url 패턴에 맞는 모든 요청에 대해 부가 작업을 처리할 수 있는 기능을 제공합니다. Dispatcher Servlet은 스프링 제일 앞에 존재하는데 따라서 Filter는 SPring외부에 존재합니다.스프링 컨테이너가 아닌 톰캣과 같은 서블릿 컨테이너에 의해 관리,스프링 빈으로 등록은 된다.Intercepter는 Dispatcher 가 컨트롤러를 호출하기 전과 후에 응답을 참조하거나 가공할 수 있는 기능을 가지고 있다. 즉 스프링 내부에 동작한다.설명만 들어보면 인터셉터만 쓰는게 나아보이는데, 아닌가요? 필터는 어떤 상황에 사용 해야 ..

Java 2024.11.21

CS 스터디 회고 - java 2

7. Synchronized 키워드에 대해 설명해 주세요.여러개의 스레드가 한개의 자원을 이용하고자 할 때 현재 데이터를 사용하고 있는 스레드를 제외하고 나머지 스레드들은 데이터에 접근 할 수 없도록 막는 개념으로 즉, 멀티스레드 접근 제한 키워드입니다. 메소드 블럭 단위로 적용이 가능합니다. Synchronized 키워드가 어디에 붙는지에 따라 의미가 약간씩 변화하는데, 각각 어떤 의미를 갖게 되는지 설명해 주세요.메서드에 붙으면 메서드가 호출되는 동안 해당 객체의 인스턴스에 대한 락을 획득하여 한스레드가 이 메서드를 실행 중이면 다른 스레드가 이객체의 메서드를 호출 할 수 없습니다.메서드 내부 블록에 사용하게 된다면 내부 코드만 동기화를 하여 동기화 범위를 줄여 성능을 최적화 할 수 있습니다.특정 객..

Java 2024.11.15

디스코드 봇 만들기 - 사용자가 음성 채널에 들어갔을때

디스코드 봇을 심심해서 만드는데사용자가 음성채널에 들어가는 이벤트에 대해서 처리 하고 싶었다.  discord.js를 이요해서 구현 중이고버전은 v 14.16.3 버전을 기준이다. 14버전부터 많은게 바뀌어서 자료가 별로 없는것 같다.. 그래서 다 영어로 검색해야 해서 슬프다... 기본 설정은 다 해뒀고음성 채널에  참가했을때 참가한 시간을 간단하게 시간을 측정해주는 건데 const { Events } = require("discord.js");module.exports = { name: Events.VoiceStateUpdate, once: false, async execute(oldState, newState) { // 유저가 음성 채널에 들어갔을 때 if (..

Node.js 2024.11.14

Redis에 대한 짧은 공부

사이드 프로젝트를 진행하는데 DB를 고름에 있어서 고민을 하게 되었다. 먼저 프로젝트는 공유된 그림판을 만들려고 한다.그런데 이때 이미지를 불러오는 속도가 빨라야 한다.따라서 팀원들이 인덱스 파싱과 인메모리 DB 중 고민해봐야겠다고 했고 내가 이를 맡아서 알아보기로 하였다.둘의 장단점을 비교 하면 할 수록 우리 프로젝트에는 Redis를 사용하여, 즉 인메모리 방식을 사용하여야한다고 밖에 안들었다. O(1)의 시간으로 가져올 수 있고 PUB/SUB을 이용한다면 사용자들에게 변경 사항 들을 뿌려 줄 수 있을 것도 같았다. 다만 지금 정리하면서 생각하니 PUB/SUB은 메시지 큐로 사용했을때라 Redis가 두개여야 할것 같다는 생각이 든다. 아무튼 Redis 에 대해 잠깐 알아보자면주로 키-값 형태로 데이터를..

Redis 2024.11.13

[CS 스터디 회고] JAVA 면접 질문 대비

KB IT's Your Life 를 진행하면서 CS 스터디를 진행하고 다시 복습을 하면서 정리를 한다.또한 추가 적으로 생긴 질문들 중 몇가지를 정리 해보았다.  1. JVM이 정확히 무엇이고, 어떤 기능을 하는지 설명해 주세요.JVM이란 OS에 종속 받지 않고 CPU가 Java를 인식 실행할 수 있도록 하는 가상 컴퓨터 환경입니다. 자바를 실행하고 관리하는 중요한 구성 요소로서 가비지 컬렉터, 바이트 코드 실행, 보안관리, 라이브러리 관리 등의 기능을 제공합니다. JVM은 javac에 의해 소스코드에서 바이트 코드로 변환되는데 각 운영체제마다 JVM구현체가 존재하여 이 바이트 코드를 실행할 수 있습니다. 덕분에 자바는 플랫폼 독립성을 가질 수 있습니다. 또한 객체가 더 이상 사용되지 않으면 자동으로 메..

Java 2024.11.08

Tomcat + Spring framework + AWS + Docker + GithubAction CICD배포하기

KB IT's Your Life의 마지막 프로젝트를 어제까지 마감하여 끝을 냈다.프로젝트를 진행하며 CICD 를 플로우를 작성해서 배포를 하였다. CICD를 구축한다면 나중에 마감일에 수정 삭제를 마감일까지 하게 되는데 빌드해서 .war 파일만들어서 배포환경의 tomcat에 .war파일 넣고~ 너무 불편하다...이전에 다른 프로젝트( React + nodeJS 등등 ) 할때에도 CICD 구축의 편리성을 느꼈기 때문에 이번 프로젝트에도 구축하려고 하였다. 먼저 환경은톰캣 ( Tomcat 9.0.94 )  Spring Framework ( spring boot 아님!! ) Java version 17 에서 개발을 진행 하였습니다.  CICD 프레임 워크로는   Github Action 을 사용하였습니다. 무..

배포(Deploy) 2024.10.17

백준 1700번 멀티탭 스케줄링 - 자바(JAVA)

문제 링크https://www.acmicpc.net/problem/1700  1. 문제2. 문제 관찰 과정 및 풀이2-1. 문제 관찰 과정 cpu 스케줄링이 생각나는 문제 였다.처음의 풀이는 입력을 받으면서 count배열을 만들어서 각 숫자의 인덱스 값을 증가 시켜 가장 많이 나오는 수를체크해서 가장 적게 나오는 플러그를 교체하는 방식으로 풀었는데 내가 생각하는 테스트 케이스에서는 답이 잘 나왔었지만 계속 틀림이 떴엇다. 그래서 반례에서 계속 통과 못한다는 것을 알고 내가 생각해도 좀 답이 틀릴 경우가 있을 것 같아 다른 알고리즘을 생각하게 되었다. 틀린 코드import java.io.*;import java.util.HashSet;import java.util.Set;import java.util.St..

알고리즘/백준 2024.08.20
반응형