썸네일 [spring boot] @.자바 백엔드 개발자의 기본 지식 서버와 클라이언트✦ 서버 란? 서버(Server)는 클라이언트의 요청을 request 받아 처리하는 주체입니다. 클라이언트가 데이터를 요청하면 데이터를 주고 (Post 방식) , 서버 내에서 처리만 해달라는 요청을 하면 해당 요청만 처리할 수 도 있습니다. (Get방식) ✦ 클라이언트 란? 클라이언트(Client)는 서버로 요청하는 프로그램을 일컫는 말입니다. 우리가 흔히 사용하는 웹 브라우저가 대표적인 클라이언트 중 하나입니다. 우리가 브라우저를 통해 URL을 입력하고 화면을 요청하는 행동을 통해 해당 링크로의 이동이 가능합니다. 이와 같이 주소를 입력하고 엔터(Enter) 키를 통해 정보를 요청하는 것을 "서버에 요청한다" 즉, Request 하는 것이며, 이 행동을 통해 서버는 Response 하는..
썸네일 [spring boot] Spring Security 기본 로그인 페이지 없애기 (6.1 이상 버전) 프로젝트 진행 중 spring security를 사용하여 비밀번호를 암호화하여 DB에 저장하는 기능을 구현하고자 spring security 라이브러리를 build.gradle에 주입해주었다. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'spring security를 주입하게 되면 자동으로 login 페이지로 이동하게 되고 , 원하는 url을 아무리 입력해도 이동하지 않는다.  해결방법먼저, application에서 실행되는 Main.java 클래스 파일에 @SpringBootApplication 어..
썸네일 [혼공컴운] Chapter 08-2. 다양한 입출력 방법 입출력 작업 : CPU와 장치 컨트롤러가 정보를 주고받는 것 ⇒ 장치 컨트롤러와 CPU가 정보를 주고받는 방법프로그램 입출력인터럽트 기반 입출력DMA 입출력프로그램 입출력: 프로그램 속 명령어로 입출력장치를 제어하는 방법더보기⚡ Q. 어떻게 CPU는 입출력 장치들의 주소를 아는 걸까?- "프린터 컨트롤러의 상태 레지스터를 읽어라" 와 같은 명령어들은 어떻게 명령어로 표현되고, 메모리에 어떻게 저장되어 있을까?메모리 맵 입출력: 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소공간을 하나의 주소공간으로 간주하는 방법즉, 1024개의 주소를 표현할 수 있는 컴퓨터가 1024개 전부를 메모리 주소를 표현하는데 사용하지는 않는다. 이때, 512개는 메모리 주소를 512개는 장치 컨트롤러의 레지..
썸네일 [자격증] 5일만에 정보처리기능사 실기 원패스 후기 / 정보처리기능사 자격증 취득 ꉂꉂ(ᵔᗜᵔ*) 3월 9일, 16일 연달아 시험 신청해놓은 과거의 나... (왜 그랬니,,)과거엔 충분히 여유롭게 할 수 있을 거라 생각했는데.. 공부를 미루고 미루다가 SQLD 끝나고정보처리기능사 실기 시험이 뭔지도 모른채 있다가 딱 5일 공부했다.  일단 결과는 다행히도 합격!!공부할 수 있는 시간이 많이 부족했기 때문에 최대한 빨리 모든 부분을 볼 수 있도록 공부했다.  기사퍼스트 - 정보처리기능사 실기 강의 필기 때에도 도움을 받았었던 기사퍼스트의 강의를 통해 실기 기본을 공부했다다른 개념 강의도 들어봤지만 기사퍼스트 강의가 제일 이해가 잘 되도록 설명하시는 편이라 좋다.  강의를 통해 기본 개념을 모두 공부한 후, 전에 사 두었던 문제집을 통해 문제를 풀었다. 기본 개념같은 경우에는 모든 개념을 암기해 백지에 ..
썸네일 [Java] 병렬 데이터 처리 "병렬 스트림" "병렬 스트림" 은 데이터 처리를 병렬화하여 성능을 향상 시킬 수 있는 기능이다.병렬 스트림은 스트림 API의 한 종류로,데이터 처리 작업을 병렬적으로 처리하는데 사용되는 기능이다. 즉, 스트림의 요소들을 병렬적으로 처리함으로써 다중코어(CPU 코어) 시스템에서 병렬 처리 성능을 극대화할 수 있다. 대량의 데이터를 처리할 때 특히 유용하며, 병렬 처리를 활용하면 단일 스레드 처리보다 훨씬 빠른 속도로 데이터를 처리할 수 있다. 병렬 스트림은 내부적으로 Fork/Join 프레임워크를 사용하여 작동한다. Fork/Join 프레임워크는 작업을 작은 작업들로 분할하고, 이를 병렬로 처리한 후 결과를 합치는 방식으로 동작한다. 이러한 방식으로 병렬 스트림은 작업을 더 작은 작업 단위로 나누어 멀티코어 프로세서에서..
썸네일 [자격증] 2024 첫 개정 SQLD 자격증 취득!! / 52회 문과생,비전공자, 노베 원패스 후기 올해 초 상반기 목표 중 하나였던 SQLD 자격증 따기!! 뭔가에 홀린듯 갑자기 1월에 SQLD 따야지 계획하고 시험 접수까지 해버렸던 과거... 사실 그냥 접수해놓고 5만원이란 응시료가 아까웠기에.. 원패스하자! 맘 먹고 급하게 벼락치기함..ㅎ SQLD 1회를 응시했고, 52회 시험이었다. 이번년도부터 SQLD의 시험 범위가 달라졌고, 시험 형식도 달라졌다. (사실... 시험 5일 전까지 개정인지 몰랐음.. 바본가..)BackGround나는 먼저, 비전공자이고 뼛속까지 문과인이였다. 현재는 개발자라는 직무를 꿈꾸고 있지만, 사실 개발관련 공부를 시작한지는 이제 약 8-9개월 정도 된 찐 초보이다.  국비를 통해 강의를 들으면서 SQL을 다뤄본적은 있지만, 엄청 기초적인 내용들만이기도 하고, 거의 SQL..
썸네일 백엔드 개발자에게 중요한 테스트코드 작성하기 테스트 코드는 작성한 코드가 의도대로 잘 동작하고 예상치 못한 문제가 없느닞 확인할 목적으로 작성하는 코드이다. 현재 소프트웨어 개발 실무에서 테스트 코드의 사용은 매우 중요해졌다. 코드의 동작을 검증하고, 유지보수에하기에 매우 좋고, 개발자 자체가 무엇을 만들고 있는지 정확히 인지할 수 있게 되며, 예상치 못한 문제를 미리 발견해 부담을 덜어주는 장점을 얻을 수 있다. 나 또한, 사실상 테스트 코드를 처음 접했을 때는 어렵기도 하고, 이게 굳이 필요한 부분인가? 싶어 딱히 중요하지 않다고 생각했다. 하지만, 프로젝트를 진행하면서 테스트 코드를 작성하는 것이 확실히 큰 프로젝트를 실행할 때 많은 도움이 됨을 느끼고 공부를 본격적으로 시작하게 되었다. 테스트 코드는 주로 V모델을 따라 생각 해 볼 수 있..
썸네일 [혼공컴운] Chapter 05-2 명령어 병렬 처리 기법 명령어 병렬 처리 기법 (ILP : Instruction - Level Parallelism) : 명령어를 동시에 처리하여 CPU를 한시도 쉬지 않고 작동시키는 방법 ILP 의 종류 1. 명령어 파이프라이닝 2. 슈퍼스칼라 3. 비 순차적 명령어 처리 명령어 파이프라인 [ 명령어 처리 과정 ] 1. Instruction Fetch (명령어 인출) 2. Instruction Decode (명령어 해석) 3. Execute Instruction (명령어 실행) 4. Write Back (결과 저장) [중요] : 같은 단계가 겹치지 않는다면 CPU는 각 단계를 동시에 실행할 수 있다. 즉, CPU는 한 명령어를 '인출' 하는 동안 다른 명령어를 '실행' 할 수 있고, '실행' 하는 동안 연산결과를 '저장' 할..
썸네일 [Spring] 애플리케이션의 복원력을 높이는 방법 Spring 애플리케이션 복원력을 높여야 하는 이유 애플리케이션의 복원력을 높이는 이유는 사용자 경험의 개선, 시스템 안전성 보장, 비용 절감, 기업의 신뢰도 유지 등이 포함된다. 1. 사용자 경험의 개선 : 애플리케이션의 복원력이 높을수록 사용자는 서비스 중단이나 장애로 인한 불편을 경험하는 시간을 줄일 수 있다. 사용자들이 안정적으로 서비스를 이용할 수 있으며, 사용자 만족도를 향상시키고 재방문률을 높일 수 있다. 2. 시스템 안전성 보장 : 장애가 발생했을 시 빠르게 복구할 수 있는 시스템은 비즈니스 연속성을 보장하는데 중요하다. 특히 온라인 비즈니스나 금융 서비스와 같이 시스템의 가용성이 중요한 업종에서는 장애에 빠르게 대응하는 것이 비즈니스의 생존과 직결될 수 있다. 3. 비용 절감 : 장애가 ..
썸네일 [Java] hashCode()와 equals()란? Java를 공부하다보면, 프로그래밍 시 'hashCode()' 와 'equals()' 메소드에 대해 많이 접하게 된다. 이 메소드들은 객체의 동등성 비교와 해시 맵(HashMap) 등의 자료 구조에서 효율적인 검색을 위해 사용되는 중요한 메소드이다. 이번 글에서는 hashCode()와 equals() 메소드에 대해 자세하게 정리해보려고 한다. hashCode() Method hashCode() 메소드는 객체의 해시코드를 반환하는 메소드이다. 먼저, 해시코드란 데이터를 빠르게 저장하고 검색하기 위해 사용되는 임의의 길이의 고정된 크기의 값이다. 이는 hashCode() 메소드를 통해 객체의 해시코드를 얻을 수 있다. 일반적으로 hashCode() 메소드는 객체의 필드를 기반으로 해시 코드를 생성하며, 주요..
썸네일 [Java] '깊은 복사'와 '얕은 복사'란? 오늘 정리할 내용은 자바에서의 깊은 복사 와 얕은 복사이다. 배열이나 객체를 복사해서 사용하는 경우가 발생할 수 있는데, 이때 JAVA에서 깊은 복사와 얕은 복사에 대해 배웠었다. 이 차이점을 명확히 해야 헷갈리지 않기 때문에 정리해두고자 한다. Deep Copy vs Shallow Copy 깊은복사 (Deep Copy) : '실제 값'을 새로운 메모리 공간에 복사한다. (힙 영역) 얕은복사 (Shallow Copy) : '주소 값'을 복사한다. (스택영역) 사실상, 이렇게만 설명하게 되면.. 이해를 못하는 경우가 많다. 따라서 예를 들어 설명해보자 얕은복사(Shallow Copy) class Person { private String name; private int age; public Person(S..
썸네일 [혼공컴운] Chapter 07-1 다양한 보조기억장치 하드 디스크 : 자기적인 방식으로 데이터를 저장하는 보조기억장치 (= 자기 디스크_magnetic disk) 대용량 저장 장치가 필요한 작업 서버실에 자주 출입하는 작업 하드 디스크 구성 플래터 : 실질적으로 데이터가 저장되는 곳 자기 물질로 덮여 있어 수많은 N극과 S극을 저장한다. N극과 S극은 0과 1의 역할을 수행 스핀들 : 플래터를 회전시키는 구성 요소 RPM (Revolution Per Minute) : 스핀들이 플래터를 돌리는 속도, 분당 회전수 ex) RPM이 15,000인 하드디스크는 1분에 15,000바퀴를 회전하는 하드 디스크 헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소 디스크 암 : 헤드를 원하는 위치로 이동시키는 부품 헤드는 디스크 암에 부착되어 있다 💡 하드 디스크는..