목록전체 글 (164)
궁금한게 많은 코린이의 Developer 노트
Redis 에러 해결> :bootRun^C% ➜ back git:(develop) ✗ redis-cli pingPONG➜ back git:(develop) ✗ ps aux | grep redisjudy 14810 0.1 0.0 411043184 4800 ?? S 5:22PM 0:01.28 /opt/homebr..
Spike를 설명하기에 앞서,스크럼 개발에 대해 간략히 알아보자. 스크럼에선느 스프린트에 투입할 프로덕트 백 로그 아이템은 Ready일 필요가 있다고 한다.Ready하는 것으로 성과를 일정하게 유지하면서 프로덕트 오너나 관계자의 입장에서 예측 정확도를 향상 시킬 수 있다. 스프린트 내에서는 프로덕트 백 로그 아이템을 완성 가능성을 높이기 위해 필요한 활동 모든 것을 포함한다.그 중 하나가 기술적인 조사(스파이크)이다. 스파이크란?릴리즈 가능한 프로덕트를 만드는 것이 아닌, 질문에 답하거나 정보를 수집하는 것을 목적으로 하는 작업. 개발 팀이 기술적인 질문이나 설계 상의 문제를 해결하기 위해 실제 작업을 하기 전, 어느 정도의 개발 스케줄을 갖고 가야할지 잘 모르겠는 프로덕트 백 로그 아이템이 생기는 경우..
오류 메시지(HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:1521 -> 0.0.0.0:0: listen tcp 0.0.0.0:1521: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. 오류 분석 이건 이미 포트 1521이 사용 중이라서 도커 컨테이너가 포트를 바인딩하지 못해서 실패한 경우입니다. 즉, Oracle 컨테이너가 정상적으로 실행되지 않았고, 접속 오류(ORA-01017)도 그 결과입니다. 해결 방법 ✅ 1. CMD 명령 프롬프트를 통해 현재 1521 포트를 사용 ..
내가 작성했던 코드/*shuffle 메서드 작성*/private static int[] shuffle(int[] arr){for(int i = 0; i 아래 shuffle 배열 결과 값을 보면 값에 random 값이 적용이 되어 중복 값이 들어간 것을 알 수 있다. 뭐가 문제였을까?결론을 말해보자면, 바로 arr[i] = randomNum 에서 arr[i] = arr[randomNum] 으로 변경해주어야 한다. 내가 수정한 코드 /*shuffle 메서드 작성*/ private static int[] shuffle(int[] arr){ for(int i = 0; i 핵심은 인덱스와 인덱스 간의 치환이다. arr[i] = arr[랜덤 값]변경 전) arr[i] = randomNum : 인덱스 값 ..
백엔드를 하면서 서버가 어떤게 있는지 제대로 대답을 못했다니..면접을 보기 전 자바의 기본기 중 구멍을 찾아서 매꾸는 작업을 하고 있었다. 요새 자바 기본기만 다시 돌려보는 중이였는데 스스로 서버에 대한 개념이 없다는 것을 숙지하지 못했다.왜 웹앱인가? 왜 웹앱이 등장했는가? 정말 근본적인 질문이지만 이 부분이 나의 개념구멍이었다.이것을 알아냄으로서 나의 논리적 사고의 끊긴 "중간 부분"을 찾아낸 느낌을 받았다. 논리적을 막힌 부분이 뚫리니 궁금한 부분이 계속해서 생겨났다.스프링부트 내부에서 DB가 어떻게 연결되고 사용자 화면에 보여지는지만 알고 더 내부의, DB가 "어디에" 저장되는지 인지하지 못했다. 내가 알고 있었던 것은 백엔드의 요약본이었다. (요약본도 아닐지 모른다..ㅎㅎ)막힌 부분이 뚫려서 통..
스프링부트로 session 기반의 로그인을 구현한 경험이 있는데session이라는 개념에 대해 명확히 알지 못한 채로 구현했었기 때문에 개념을 정리해보려고 한다. 인증에서의 Stateful Stateless 개념stateful : 세션 인증을 철회할 수 있다. stateless : 세션 인증을 철회할 수 없다.Session 이란?서버 측에서 사용자의 정보를 저장하는 방법.브라우저가 연결되면 해당 클라이언트에 대한 세션을 확보하고, 연결이 종료되면 or 브라우저가 닫히면 세션을 닫으며,세션이 만료된다. 만료된(종료된) 세션을 다시 사용할 수 없다.stateful 한 인증방법. (세션을 철회할 수 있다.)유저(Id, Email)가 유니크한 identifier에 배정. 이것을 서버에 저장.클라이언트는 sess..
오버로딩과 오버라이딩을 공부하고 나서 시간이 지나면 많이 헷갈리는 개념인 것 같아서다시 정리해보려고 한다.이름이 비슷해서 앞으로 직역해서 기억해야 겠다.오버로딩 Overloading Over: 넘어서, Loading: 적재하다. 직역하면 "과적재" 입니다.프로그래밍에서는 같은 이름의 메서드를 여러 개 정의하여 매개변수의 타입이나 개수에 따라 다르게 동작하도록 하는 것을 나타냅니다. 즉, 메서드의 이름이 같지만, 그 기능이 매개변수에 따라 다르게 "적재"된다고 볼 수 있습니다. 오버라이딩 OverridingOver: 넘어서 Riding: 쓰다 직역하면 "덮어쓰기", "재정의" 입니다.프로그래밍에서 오버라이딩은 상속받은 클래스에서 부모 클래스의 메서드를 재정의하는 것을 의미합니다. 즉, 자식 클래스에서 부..
삭제가 안될 때해결방법 -f 로 강제로 삭제하는 방법이 있다. CRLF 이슈 발생했을 시. 해결방법(Window)
나의 문제풀이class Solution { public int[] solution(int start_num, int end_num) { int[] answer = new int[(end_num-start_num)+1]; for(int i = start_num; i 초반에는 ArrayList로 만들어서 반복문으로 add 메서드로 값을 하나씩 삽입하는 방법을 생각했었지만생각해보니 고정된 배열 값으로도 문제를 풀 수 있을 것 같아서 방안을 변경해서 진행했다. ArrayIndexOutOfBoundsExceptionfor문에 i = start_num이라고 설정해주었다면,answer[i] 부분도 똑같이 start_num 값으로 적용되므로answer 배열은 start_num(ex. " ..
내가 작성한 코드import java.util.ArrayList;class Solution { public int[] solution(int l, int r) { ArrayList answerObj = new ArrayList(); for(int i = l; i x == '0' || x == '5')) { answerObj.add(i); } } if(answerObj.isEmpty()){ answerObj.add(-1); } int[] answer = answerObj.stream().mapToInt(x -> x).toArray(); ..