본문 바로가기

분류 전체보기510

[CS] JVM 이란? Java Virtual Machine 은 OS 에 종속받지 않고 CPU가 Java를 인식 , 실행 할 수 있게 하는 가상 컴퓨터이다. 스택 기반으로 동작하며, GC 를 통해 자동적인 메모리 관리를 해준다. Java 는 OS 에 종속적이지 않기 때문에, 실행시키기 위한 무언가가 있어야 한다. 그것이 JVM 이다. Java 소스코드는 (.java) CPU 가 인식하지 못하므로 기계어로 컴파일을 해줘야 한다. JVM 이라는 가상머신을 거쳐 OS 에 도달하기 때문에 OS 가 인식하는 기계어로 바로 컴파일 되는게 아니라, JVM 이 인식할 수 있는 Java bytecode(.class) 로 변환하게 된다. Java Compiler 가 .java 파일을 .class 라는 Java bytecode로 변환시킨다. 자바.. 2022. 12. 17.
[CS] Spring MVC 이란? MVC 란 무엇일까? 웹 애플리케이션 개발을 위한 MVC 패턴 기반의 프레임워크이다. MVC는 모델, 뷰, 컨트롤러로 이루어져있다. MVC 패턴을 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리할 수 있다. 모델(Model) - 데이터 - 데이터를 저장한다. - 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 관리한다. - DAO ( 데이터 접근 객체 ) 클래스 , Service 클래스에 해당된다. ex ) 상품 목록, 주문 내역 등등 뷰 (View) - 모델이 처리한 데이터를 가지고, 사용자에게 출력할 화면을 만든다. - 생성된 화면은 브라우저가 출력한다. ex ) .JSP 파일 컨트롤러 (Controller) - 클라이언트의 요청을 받았을 때, 그 요청을 실제로 수행하는 모델을 호출한다. .. 2022. 12. 16.
query did not return a unique result 에러내용 query did not return a unique result:4 에러원인 Repository 에서 조회할 때 중복된 값이 발생하여 나타난 에러. 아이디는 unique 값으로 중복될 수 없지만, 비밀번호는 중복이 가능하기 때문에 발생한 에러였다. memberRepository.findByLoginId(noSocialLoginRequest.getLoginId()).orElseThrow( ()-> new IllegalArgumentException("아이디를 확인해주세요.") ); memberRepository.findByPassword(noSocialLoginRequest.getPassword()).orElseThrow( ()-> new IllegalArgumentException("비밀번호를.. 2022. 12. 13.
[CS] 스케줄링 알고리즘 이전 시분할 관련한 포스팅에 이어 CPU 스케줄러에 대해 알아보자. 먼저, 현대 운영체제에서는 선점형 방식을 사용하고 있다. 이유는 프로세스가 CPU를 독점하지 못하게 할 수 있어 효율적으로 운영이 가능하기 때문이다. 스케줄링 알고리즘에 따라 프로세스에게 해야 하는 일을 스레드 단위로 CPU에 할당 하는 것을 의미한다. 해당 알고리즘의 목표는 프로세스가 효율적으로 작업될 수 있도록 하는 것이다. 1. CPU 이 최대한 일을 할 수 있게. 2. 주어진 시간에 많은 일을 하도록. 3. 준비 큐에 있는 프로세는 적게. 4. 응답시간은 짧게. CPU 스케줄링 알고리즘의 종류로는 크게 비선점형과 선점형 방식이 있다. 두가지의 차이는 프로세스가 CPU 를 점유하고 있을 때 가로챌수 있는지 없는지에 대한 차이이다. .. 2022. 12. 13.
일 잘하는 사람은 단순하게 합니다 를 읽고, 우연히 주말에 광교에 있는 북 카페에 가서 재미있는 책을 읽을 수 있었다. 다른 여러 책도 있었지만, 이 책을 선택한 이유는 지금 내상황과 미래에 일을 할 때 어떤 마음가짐과 자세로 접근하면 효율적인 직장생활을 할 수 있을지에 대해 도움을 얻고자 선택했다. 일을 잘하고 싶다, 복잡하지 않게 단순하게 일하고 싶다 라는 것은 직장인들 만인의 꿈일 것이다. 개발자에 대한 책은 아니었지만, 상대방에게 어필하기 위한 글 작성방법 등 여러 내용을 포함하고 있다. 개발자를 준비하고 있으면서 내가 어떤 생각으로 프로젝트를 선택하고 기획하고 왜? 이런 스택을 선택했는지에 대해 설명해야 하는 부분에 있어 많은 도움을 받았다. 몇가지 생각나는 문구를 적어보면, 그저 그런 100가지 프로젝트보다 제대로 된 1가지 프로젝트가 .. 2022. 12. 12.
[CS] 시분할 시스템이란? 프로세서(CPU) 가 1개라고 가정했을 때, 여러개의 스로세스는 차례대로 실행되어야 한다. 즉, 프로세서 1개당 1개의 명령어만 실행할 수 있다. 이에 프로세서는 시분할 시스템을 사용해서 프로세스 간에 특정시간을 배정한다. 특징 1. 프로세스 스케줄링과 다중 프로그래밍을 사용해 각 사용자에게 컴퓨터의 CPU 시간을 분할해 나눠준다. 2. 다중 프로그래밍 환경에서 하나의 CPU를 나누어 쓰는 방식이다. 3. 아주 짧은 시간 간격을 두고 여러개의 프로그램을 전환하면서 실행하므로 동시에 실행되는 것처럼 느껴진다. 4 .프로그램의 실행을 전환하는 것은 OS(운영체제)가 담당하는 것이 특징이다. 2022. 12. 12.
[CS] Overriding 과 Overloading의 차이점 오버라이딩(Overridng) : 부모 클래스의 메서드를 재정의 하는 것 오버로딩(Overloading) : 메서드 이름은 동일하지만, 매개변수(인자)를 다르게 하는 것을 의미한다. 예제로 알아보는 것이 가장 좋다. 오버라이딩의 예 class Parent { String name; String age; public void info() { System.out.println("이름은" + name+ ", 나이는 " + age); } } class Son extends Parent { String home; // info 메서드 재정의 public void info() { System.out.println("집은 " + home); } } public class Main { public static void.. 2022. 12. 9.
기술면접 주요질문 - 공개X 보호되어 있는 글 입니다. 2022. 12. 9.
git add 취소하기 git diff 로 어떤 내용이 수정되었는지 확인하고 싶은데 git add 로 stage 로 올려 확인이 되지 않을 때 git add 를 취소 후, 다시 git diff 를 실행시켜야 한다. (git add 이후 git diff 는 작동되지 않는다) git add 를 취소하고 싶을 때는 아래와 같이 진행한다. git reset head "파일이름" 2022. 12. 9.