컴퓨터의 기본 실행 환경 컴퓨터는 운영 체제(OS: Windows, macOS, Linux 등) 위에서 애플리케이션을 실행한다. 애플리케이션이 실행되려면 프로세서(CPU), 메모리(RAM), 디스크 저장소 등의 하드웨어 및 프로그램이 실행되기 위한 소프트웨어 환경(라이브러리, 설정 등)이 필요하다. 이때 동일한 프로그램이라도 컴퓨터의 설정, 라이브러리 버전, 운영 체제 등에 따라 실행이 달라질 수 있다."내 컴퓨터에서는 실행되는데 쟤 컴퓨터에서는 안 돼요!"이를 해결하기 위해 일관된 실행 환경을 제공해야 한다. 가상화(Virtualization) 기술 가상화는 물리적 자원(예: CPU, 메모리, 디스크, 네트워크 등)을 소프트웨어적으로 분리하여 논리적 자원으로 변환하는 기술이다. 이로 인해 사용자나..
24년 7월 28일 응시한 정보처리기사 실기 후기입니다. 1. 시험 과정2. 준비 기간 및 공부 방법3. 후기정보처리기사 실기 2회차를 치고왔습니다! 원래 1회차를 칠 생각이였는데 접수 대기가 너무 많아서 1회차 접수를 못하고2회차를 접수했습니다.가채점해본결과 답이 기억안나는 문제가 있는데 그 문제들을 다 틀려도 합격할만한 점수라 합격된 것 같아서미리 후기를 작성합니다!시험 과정이번엔 고등학교에서 시험을 쳤는데 오랜만에 고등학교에 가보니 신기하더라구요.아침에 일어나서 밥안먹고 씻고 준비하고 바로 학교로 필통하나만 챙겨서 택시타고 갔습니다.학교 입구에 이름하고 수험번호가 작성되어있어서 확인 후 해당 번호가 적힌 교실로 올라가면됩니다.근데 전 올라가봤는데 제 이름이 없어서 다시 내려와서 확인해봤는데 위에 ..
WebClient란? 'WebClinet'는 Spring WebFlux 모듈에 포함된 비동기, 논블로킹 웹 클라이언트로, RESTful서비스를 호출하는 데 사용된다. 'WebClient'를 사용하기 전 알아야 할 배경 지식 및 개념을 정리해보았다. 1. 비동기 프로그래밍 - 비동기 프로그래밍이란 작업이 완료될 때까지 기다리지 않고 다른 작업을 계속 수행할 수 있게 하는 프로그래밍 방식이다. 'WebClient'는 비동기적으로 웹 서비스를 호출하는데, 이는 응답을 기다리는 동안 다른 작업을 수행할 수 있어 애플리케이션의 성능과 확장성을 향상시킨다. 2. 논블로킹 I/O - 논블로킹 I/O는 I/O 작업이 완료될 때까지 스레드가 차단되지 않고 다른 작업을 계속 수행할 수 있게 하는 I/O처리 방식이다. 'W..
IoC(Inversion of Control) - 제어의 역전 - IoC는 프로그램의 제어 흐름을 사용자가 아닌 프레임워크가 관리한다는 것을 의미한다. IoC를 사용하면 프로그램의 흐름을 프레임워크에 위임하여, 개발자는 비즈니스 로직에 집중하며, 코드의 재사용성과 유지보수성이 향상된다. 제어 흐름을 관리한다는 것은 프로그램이나 애플리케이션에서 코드의 실행 순서나 방식을 결정하고 조절하는 과정을 의미한다. 예를 들어, 함수나 메서드 호출, 반복문 실행, 조건문 평가 등을 통해 어떤 코드가 언제 실행될지를 결정할 때, 개발자가 결정하는 것이 아닌 프레임워크나 라이브러리 같은 외부 시스템에 위임한다. 이 방식에서 프레임워크가 애플리케이션의 주요 실행 흐름을 책임지고, 개발자는 프레임워크가 요구하는 특정 부분에..
다형성이란? 하나의 인터페이스나 메소드가 다양한 방식으로 작동할 수 있게하는 특성이다. 주로 '오버로딩', '오버라이딩'을 통해 구현된다. - 오버로딩(Overloading) : 같은 이름의 메소드가 있지만, 매개변수의 유형이나 개수가 다르면 서로 다른 메소드로 취급하여 다양한 작업을 수행할 수 있다. - 오버라이딩(Overriding) : 자식 클래스에서 부모 클래스의 메소드를 재정의(오버라이드)하여 사용할 수 있다. 이를 통해 동일한 인터페이스가 다른 행동을 할 수 있다. 예를들어 'Animal'클래스가 있고 이를 상속받는 'Dog', 'Cat' 클래스가 있을 때, 동물들은 소리를 낸다는 공통적인 특징을 가지고있지만, 내는 소리는 다르다. 그래서 'Animal' 타입의 참조 변수를 사용하여 상속받은 ..
SOLID란? SOLID는 객체 지향 프로그래밍 및 설계에서 시간이 지나도 소프트웨어의 유지 보수 및 확장이 용이하게하고, 이해하기 쉬운 소프트웨어를 만들고자 할 때 적용하는 5가지 원칙이다. 1) SRP(Single Responsibility Principle) - 단일 책임 원칙 - 단일 책임 원칙은 클래스가 하나의 책임만 가져야 한다. 클래스가 변경될 이유가 줄어들어 시스템이 더 유연해지고 변경에 대한 영향이 적어지며, 유지보수가 용이해진다. 예시) 아래의 코드를 보면 하나의 클래스에 보고서 생성, 인쇄, 저장하는 로직이 하나의 클래스에 포함되어있다. class Report { void generateReport() { // 보고서 생성 로직 } void printReport() { // 보고서 인..