
Stack를 구현하던 도중 다음과 같은 에러가 발생했다 왜 이런 오류가 발생했을까? 자세한 코드는 다음과 같다. import java.util.EmptyStackException; public class ListStack { private Node top; private int size; public ListStack(){ top = null; size = 0; } public int size() { return size; } public boolean isEmpty(){ return size == 0; } //push() , pop() , peek() public E peek(){ if(isEmpty()) { throw new EmptyStackException(); } return top.getIte..

error: failed to push some refs to 'https://github.com/HeWillGoTillTheEnd/test2Repo.git' To https://github.com/HeWillGoTillTheEnd/test2Repo.git hint: Updates were rejected because the remote contains work that you do !refs/heads/main:refs/heads/main[rejected] (fetch first) Done hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to fir..

1. MOM(Message Oriented Middleware, 메시지 지향 미들웨어) 1) 미들웨어 -> MOM - 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어이다. - 온라인 업무보다는 이기종 분산 데이터 시스템의 데이터 동기를 위해 많이 사용된다. - 대표적인 MOM의 종류에는 IBM의 MQ, 오라클의 Message Q, JCP의 JMS 등이 있다. 2. XP(eXtreme Programming) 1) XP - XP는 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법이다. - XP는 짧고 반복적인 개발 주기, 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 한다 - 릴..
1. 워크스루 1)인터페이스 요구사항 검증 -> 요구사항 검증 방법 -> 요구사항 검토-> 워크스루 - 검토 회의전에 요구사항 명세서를 미리 배포하여 사전 검토한 후에 짧은 검토 회의를 통해 결함을 발견하는 형태의 검 토 방법 - 사용사례를 확장하여 명세하거나 설계 다이어그램, 원시코드, 테스트케이스 등에 적용할 수 있다. - 복잡한 알고리즘 또는 반복, 실시간 동작, 병행 처리와 같은 기능인나 동작을 이해하려고 할 때 유용하다. - 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행해 보는 것 2. 결합도 1)모듈 -> 결합도 - 결합도는 모듈간에 상호 의존하는 정도 또ㄴ는 두 모듈 사이의 연관 관계를 의미함 - 다양한 결합으로 모듈을 구성할 수 있으나 결합도가 약할수록 품질이 높고, 강할수록 ..

JVM을 공부하기위해 관련된 영상(https://www.youtube.com/watch?v=AWXPnMDZ9I0)을 보던 도중 들어가자마자 소스코드를 바이트코드로 변환하는 부분부터 막혔다. 소스코드가 뭐지? 바이트 코드가 뭐지? 관련해서 검색해봤다. 바이너리 코드로 검색을 해보면서 감을 잡을 수 있었는데 소스코드는 기존에 우리가 JAVA등으로 작성한 고급 언어임을 알 수 있었고 바이트 코드는 작성한 언어를 JVM에서 실행하기 위해 가상머신이 이해하고 실행할 수 있는 0과 1로 구성된 코드를 말했다(관련 출처: https://woojoong2.tistory.com/81) 바이트 코드를 검색하다가 추가적으로 비슷한 바이너리 코드 라는 녀석이 존재했는데 얘도 똑같이 컴퓨터가 이해하고 실행할 수 있는 0과 1로..
우선 시작하기에 앞서 이 책을 읽게된 경위는 다음과 같다. 비전공자로서 프로그래밍에 대해 공부할 때 CS의 중요성에 대해서 끊임없이 피드백 받는다. 그래서 CS지식을 어떻게 쌓을 수 있을까에 대해서 많이 고민하게 되는데 구글링을 통해서 입문하기에 해당 책이 좋다는 평가를 많이 보았다. 순례길 같이 멀어 보이는 CS의 길을 이 책을 통해 한발자국 나아갈 수 있다고 생각했다. 시작이 반이라는 말이 갑자기 생각나는데 그 반을 해보자고 생각하고 책을 구매하게 되었다. 해당 책을 통해서 알 수 있는 것은 무엇일까? 목차를 통해 알아본다면 총 10장으로 구성되어 있으며 다음과 같다. 1. 컴퓨터 및 정보기술의 역사 2. 운영체제 개요 3. 컴퓨터 시스템의 동작 원리 4. 프로그램의 구조와 실행 5. 프로세스 관리 ..
1.오전에는 CORS문제로 프론트와 백엔드간의 소통이 있었다. 처음에는 배포 서버에 요청을 보냈으나 계속해서 CORS문제가 발생을 해서 내가 서버를 띄운 뒤 NGROK를 통해 프론트 측의 문제를 해결했다 corsConfiguration.setAllowedOrigins(List.of("*")); SecurityConfig의 cors 옵션을 다음과 같이 설정해서 해결했다. 결국 프론트 서버의 AllowedOrigin은 열어뒀지만 요청을 보내는 곳의 AllowedOrigin을 안열어서 발생한 문제인거 같다. 처음에 그래서 요청을 보내는 localhost포트를 열어주면 되는거 아닌가 했는데 동료분 말씀대로 localhost는 내 포트를 여는거지 상대방 포트의 요청을 열어버리는게 아니기때문에 별관련없는거같다 테스..
어떤 방식으로 오류코드를 만들것인가? 모든 field와 form마다 자세하게 설명하려면 범용성이 떨어짐 아래의 케이스는 어디에도 가져다 쓸 수 있는 범용적인 장점이 있음 오류코드는 자세히 만들 수 있음 -> required.item.itemName 상품 이름은 필수입니다 단순하게도 만들 수 있음 required -> 필수 값 입니다. 단순한 방법은 범용성이 좋음 여러곳에서 사용가능하지만 메시지를 세밀하게 작성하기는 어려움 반대로 너무 자세하게 만들면 범용성이 떨어짐 가장 좋은 방법은 범용적으로 사용하다가 세밀하게 작성해야하는 경우는 세밀한 내용이 적용되도록 메시지에 단계를 두는 방법이다. //errors.properties #level 1 required.item.itemName =상품 이름은 필수입니다..