본문 바로가기
  • _^**_

무근본 IT 지식 공유127

[무근본 자바(JAVA)] OOP란? OOP가 뭔데? 쉽게 설명해줄게 ! 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍 패러다임 중 하나로, 현실 세계의 사물이나 개념을 객체로 표현하고, 이러한 객체들 간의 상호작용을 통해 프로그램을 구현하는 방법론입니다. OOP는 크게 네 가지 주요 개념으로 구성되어 있습니다: 캡슐화, 상속, 다형성, 그리고 추상화입니다. 1. 캡슐화(Encapsulation) - 캡슐화는 객체의 데이터와 그 데이터를 처리하는 함수를 하나로 묶는 것을 의미합니다. 이를 통해 객체의 내부 데이터는 외부에서 직접 접근할 수 없게 되며, 오직 객체가 제공하는 함수를 통해서만 접근이 가능하게 됩니다. 이렇게 함으로써 데이터의 무분별한 변경을 막을 수 있으며, 객체의 안정성을 높일 수 있습니다. 2. 상속(Inheri.. 2023. 8. 22.
[무근본 안드로이드] 인형 가격 구하기 [질문사항] 안드로이드 프로그래밍....도와주세요 라디오 버튼 6개의 각각 두번째 항목이 선택된 게 초기화면이자 초기화 버튼을 눌럿을 때의 화면인데 총액 버튼을 누르면 선택된 항목의 갑이 더해져 나와야하는데 애뮬레이터를 켜고 바로는 되는데 초기화버튼을 누르고 나서 총액 버튼을 누르면 계산 버튼을 눌러도 0이더라구요 총액버튼을 누르면 2000이 떴으면 좋겠습니다. public void onBtn1(View v){ //초기화 버튼 rb2.setChecked(true); rb5.setChecked(true); this.cnt = 1; // 수량 this.dollPrice = 0; this.sizePrice = 0; tv1.setText(cnt + ""); Toast.makeText(getApplicationC.. 2023. 4. 20.
[무근본 파이썬] 파이썬을 이용한 네이버 증권 정보 크롤링 방법 ! - 왕초보도 이해하는 파이썬 코드예시 [질문사항] python을 이용한 네이버 증권정보 크롤링 코드 다음 코드를 입력하였을 때 제대로 empty dataframe 이라서, 엑셀에도 아무 내용이 표시되지 않습니다. 혹시 어떻게 고쳐야 할까요? from selenium import webdriver from bs4 import BeautifulSoup import pandas as pd import time # 크롬드라이버 경로 설정 driver = webdriver.Chrome('your_chrome_driver_path') # 종목 코드 입력 code = '005930' # 재무제표 페이지로 이동 url = f' https://finance.naver.com/item/coinfo.naver?code= {code}&target=finsum_m.. 2023. 4. 20.
[무근본 스프링] @Test 어노테이션에 대해 - 왕초보도 이해하는 상세 설명 ! @Test 어노테이션은 JUnit 프레임워크에서 테스트 메서드임을 나타내는 어노테이션입니다. Spring Framework에서도 JUnit을 기반으로 하므로 @Test 어노테이션을 사용하여 테스트 코드를 작성할 수 있습니다. 이 어노테이션은 메서드에 붙여서 해당 메서드가 테스트 메서드임을 나타내며, 해당 메서드가 실행되면서 자동으로 단위 테스트가 수행됩니다. @Test 어노테이션에 대해 더 자세히 알아보겠습니다. [사용 방법] @Test 어노테이션은 다음과 같이 메서드에 붙여 사용합니다. @Test public void testMethod() { // 테스트할 코드 작성 } @Test 어노테이션을 사용하여 정의한 메서드는 단위 테스트를 위한 메서드입니다. 메서드 이름은 테스트의 의미를 잘 나타내도록 작성.. 2023. 4. 20.
[무근본 스프링] REST API에서 PATCH 요청이란? - 코드 샘플 REST API에서 PATCH 요청은 리소스의 일부분을 수정하는 요청입니다. PUT 요청과는 달리, PATCH 요청은 리소스의 전체를 교체하지 않고 일부분만 수정하는 것이 목적입니다. 예를 들어, 게시글의 제목(title)만 변경하고자 할 경우, PATCH 요청을 사용하여 서버에 해당 변경 사항을 전달합니다. PATCH 요청은 PUT 요청과 달리 전송되는 데이터가 변경된 속성만 포함하고, 나머지 속성은 변경되지 않은 상태로 유지됩니다. REST API에서 PATCH 요청을 처리하기 위해서는, 클라이언트가 전달한 데이터를 분석하여 변경된 속성을 식별하고, 해당 속성만 업데이트하는 로직이 필요합니다. 이를 위해서는 서버 측에서 별도의 PATCH 요청 핸들러를 구현해야 합니다. Spring Framework에.. 2023. 4. 20.
[무근본 자바] restapi patch 요청 테스트 중 : java.lang.NoClassDefFoundError 해결 방안 [질문사항] 현재 restapi patch요청 테스트 중인데 java.lang.NoClassDefFoundError: org/apache/hc/client5/http/classic/HttpClient 이런 오류가 납니다. 구글에서 찾아봐도 안나와서 질문드립니다. 아래 테스트 코드입니다. class ArticleApiControllerTest { @LocalServerPort private int port; @Autowired private TestRestTemplate restTemplate; @Autowired private ArticleServiceImpl articleService; @Autowired private ArticleRepository articleRepository; @Before p.. 2023. 4. 20.
[무근본 파이썬] Pandas 를 통한 Excel 데이터 활용하기 ! [질문] 파이썬으로 엑셀 다른 시트에 있는 값을 vlookup 하여 변경하고 컴마 기준으로 데이터를 split 하여 생성 후 저장 할 수 있을까요?.. 배우면서 공부하는 중인데 쉽지 않네요 ㅠ.. 예를 들어 첫번째 시트에 밑에 와 같은 데이터가 있으면 ID 성별 좋아하는숫자 좋아하는음식 1 남자 1,2,3 빵 2 여자 1,2 밥 3 남자 2,3,4 빵 두번째 시트에 성별 남자 1 성별 여자 2 좋아하는음식 빵 1 좋아하는음식 밥 2 최종적으로 나와야 하는 데이터 : ID 성별 좋아하는 숫자1 좋아하는 숫자2 좋아하는 숫자3 좋아하는 숫자4 좋아하는음식 1 1 1 2 3 1 2 2 1 2 2 3 1 2 3 4 1 [답변] 파이썬에서 엑셀 파일을 다루는 경우에는 대표적으로 pandas 라이브러리를 많이 사용.. 2023. 4. 18.
[무근본 파이썬] 파이썬 커피가게 큐 대기인원 코드 [질문] 파이썬으로 커피가게의 큐 대기인원 코드를 작성하시오 - 오전 8시에 시작해서 오후 10시에 종료하는 커피가게 큐 대기인원의 분포를 모의실험하시오. 큐에 최대 인원은 몇 명인가? 시간대 별로 도착시간 분포를 조정해 보세요 즉, 점심시간에는 사람이 붐비게 해 봅시다. 주문을 두명이 받는다면 어떻게 되는가? - Cust Class를 만들고, arriveTime, orderTime, outTime을 관리한다. - Shop Class를 만들고, custQueue를 만든다. . getSize method: 큐 크기를 구한다. . entCust method: 큐에 cust를 넣는다. . outCust method: 큐에서 cust를 내보낸다.(조건은 현재 시간보다 outTime이 작은 cust는 deQueu.. 2023. 4. 18.
[무근본 스프링] 클라이언트 상호 인증서 방식 사용하기(발급부터 사용까지) 웹에서 클라이언트 상호 인증서 방식을 사용하는 이유 웹에서 클라이언트 상호 인증서 방식을 사용하는 이유는 다음과 같습니다. 보안 강화 일반적인 HTTP 프로토콜을 사용하는 웹 서비스는 암호화되지 않은 데이터를 전송하기 때문에, 중간에 데이터를 가로채어서 정보를 탈취할 수 있는 보안 취약점이 존재합니다. HTTPS 프로토콜은 데이터를 암호화하여 전송하기 때문에, 이러한 보안 취약점을 보완할 수 있습니다. 클라이언트 상호 인증서 방식을 사용하면, 서버와 클라이언트 간의 상호 인증을 수행하여 더욱 보안을 강화할 수 있습니다. 불법 접근 방지 일반적인 로그인 방식은 사용자 ID와 비밀번호를 입력하여 인증하는 방식입니다. 이 경우, 타인이 사용자 ID와 비밀번호를 알아내어 불법적으로 접근할 수 있는 취약점이 존재.. 2023. 4. 15.
[무근본 스프링] @Value 어노테이션에 대해 (예시 코드 포함) Spring에서 @Value 어노테이션에 대해 Spring에서 @Value 어노테이션은 스프링 빈으로 등록된 객체에서 properties 파일이나 환경 변수 등의 값을 주입받을 때 사용됩니다. @Value 어노테이션을 사용하면, properties 파일이나 환경 변수 등에 정의된 값을 손쉽게 읽어올 수 있습니다. 예를 들어, 다음과 같은 properties 파일이 있다고 가정해봅시다. database.url=jdbc:mysql://localhost:3306/mydb database.username=admin database.password=1234 이 properties 파일에 정의된 값을 읽어오기 위해서는, 먼저 Spring의 PropertySourcesPlaceholderConfigurer 빈을 등록.. 2023. 4. 15.
[무근본 스프링] @transactional 어노테이션에 대해 (예시코드 포함) Spring의 @Transactional 어노테이션 Spring의 @Transactional 어노테이션은 메서드 레벨이나 클래스 레벨에서 사용할 수 있으며, 데이터베이스 트랜잭션 관리를 간편하게 할 수 있게 해줍니다. @Transactional 어노테이션을 사용하면, 해당 메서드가 실행될 때 Spring은 트랜잭션을 시작하고, 메서드 실행이 완료될 때 트랜잭션을 종료합니다. 만약 메서드 실행 중에 예외가 발생하면, Spring은 자동으로 트랜잭션 롤백을 수행하여 이전 상태로 되돌립니다. 예를 들어, 다음은 @Transactional 어노테이션을 사용하여 간단한 서비스 계층의 메서드를 구현한 예입니다: @Service public class UserService { @Autowired private Use.. 2023. 4. 15.
[무근본 파이썬] 파이썬에서 삼각형 별모양 출력하는 방법 ! 파이썬에서 아래와 같이 별표가 출력되도록 하는 코드를 소개하겠습니다. 1번: ****** ***** **** *** ** * 2번: * ** *** **** ***** ****** 3번: ****** ***** **** *** ** * 4번: * *** ***** ******* ********* 1번: for i in range(6, 0, -1): print("*" * i) 2번: for i in range(1, 7): print(" " * (6 - i) + "*" * i) 3번: for i in range(6, 0, -1): print(" " * (6 - i) + "*" * i) 4번: for i in range(1, 6): print(" " * (5 - i) + "*" * (2 * i - 1)) 위 .. 2023. 4. 9.
[무근본 파이썬] 사용자에게 값을 입력받은 뒤 리스트의 값 전달해주기 ! 파이썬에서 사용자로부터 숫자를 입력받는 방법은 input() 함수를 이용하는 것입니다. 이후, 리스트에서 해당하는 숫자에 해당하는 값을 출력하려면, 입력받은 숫자를 리스트의 인덱스로 사용하여 리스트이름[인덱스] 형태로 접근하면 됩니다. 아래는 이를 구현한 예시 코드입니다. # 리스트 생성 my_list = [10, 20, 30, 40, 50] # 사용자로부터 숫자 입력 받기 number = int(input("숫자를 입력하세요: ")) # 입력받은 숫자를 리스트에서 찾아 해당하는 값 출력 value = my_list[number] # 결과 출력 print("리스트에서 {}번째 자리에 해당하는 값은 {}입니다.".format(number, value)) 위 코드에서는 input() 함수를 이용하여 사용자로.. 2023. 4. 9.
[무근본 스프링(Spring Framework) 공부 - 컴파일 하는 방법 !! (2) - 왕초보도 이해하는 스프링 Gradle은 Groovy 언어로 작성된 오픈 소스 빌드 자동화 도구입니다. Gradle은 Maven과 같은 빌드 도구보다 더 유연하며, Groovy DSL을 사용하여 빌드 스크립트를 작성할 수 있습니다. Spring Framework 프로젝트를 Gradle을 사용하여 컴파일하는 방법은 다음과 같습니다. 1. 먼저, Gradle을 설치합니다. 2. 프로젝트 디렉토리에서 build.gradle 파일을 생성합니다 touch build.gradle 3. build.gradle 파일을 열고, Spring Framework에 필요한 의존성을 추가합니다. dependencies { implementation 'org.springframework:spring-core:5.3.5' implementation 'org... 2023. 3. 27.
[무근본 스프링(Spring Framework) 공부] 컴파일 하는 방법 !! (1) - 왕초보도 이해하는 스프링 Spring Framework는 자바 언어로 작성된 오픈 소스 애플리케이션 프레임워크이며, 일반적으로 Maven 또는 Gradle과 같은 빌드 도구를 사용하여 컴파일됩니다. 아래 예시는 Maven을 사용하여 Spring Framework를 컴파일하는 간단한 예시입니다. 1. 먼저, Maven을 설치하고 환경 변수를 설정합니다. 2. 프로젝트 디렉토리에서 Maven 프로젝트를 생성합니다. mvn archetype:generate -DgroupId=com.example.spring -DartifactId=my-spring-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 3. 생성된 프로젝트 디렉토리로 이동합니다. cd .. 2023. 3. 27.
[무근본 OS 만들기] CPU 세그먼트 레지스터에 대해 http://cotkdrl1.blog.me/10148671907 내가 써놨던 글. 참조하고 1. 별다른 처리 없이 메모리에 접근하면 암묵적으로 DS 세그먼트 레지스터가 사용된다. => 예를 들어.. 이 예시를 보면 알 수 있을 거다.. 무슨 말인지.. 2. 그런데 운영체제를 만드는 과정에서.. 바이오스가 부트로더를 0x07C0 번지로 갖다 놓으므로 DS와 CS는 0x07C0으로 초기화를 하는 게 좋다. => 부트로더의 코드(Code Segment)와 데이터(Data Segment)는 0x7C00부터 512바이트 범위에 존재하므로. 따라서 초기화를 해주는데, DS는 mov 명령어로 초기화 해주면 되고, CS는 mov 명령으로 초기화 할 수 없음에 주의한다. CS는 jmp 명령어를 사용하여 초기화 한다. j.. 2023. 3. 26.
[무근본 OS 만들기] 보호모드. GDT, 세그먼트 디스크립터 ※ 전에 정리해놓은 보호모드에 대한 내용 : http://cotkdrl1.blog.me/10152722953 그냥 읽는 걸로는 지루해서 못해먹겠다. 그래서 단순하게 책 내용을 정리하였다. 심심하니까 숫자놀이까지 해가며 ㅋㅋ ■ 세그먼트 디스크립터 - 세그먼테이션 기법(메모리 관리 기법)에서 세그먼트의 정보를 나타내는 자료구조 - 세그먼트란 메모리 공간을 임의의 크기로 나눈 영역을 의미 - 세그먼트를 복잡하게 구성할수록 세그먼트 디스크립터의 수도 증가 => 코드 세그먼트 디스크립터와 데이터 세그먼트 디스크립터로 나뉨 ① 코드 세그먼트 디스크립터 - 실행 가능한 코드가 포함된 세그먼트에 대한 정보를 나타냄 - CS 세그먼트 셀렉터에 사용 됌 ② 데이터 세그먼트 디스크립터 - 데이터가 포함된 세그먼트에 대한 .. 2023. 3. 26.
[무근본 OS 만들기] 보호모드에서의 세그먼테이션, 페이징(Intel 메뉴얼 해석) * 참고 : http://blog.naver.com/PostView.nhn?blogId=jeix2&logNo=80007589533&viewDate=&currentPage=1&listtype=0 => 유용한 그림이 많은 듯. 나중에 다시 보자. * 출처 : 인텔 메뉴얼 "VOLUME 3A: System Programming Guide Part 1"의 "3.4.5. System Descriptors" 참고 인텔 메뉴얼을 그대로 해석해보았다. 미숙한 영어실력이지만 궁금해서.. 3.2 세그먼트의 사용( Using Segments ) IA-32 아키텍쳐에 의해 제공되는 세그먼테이션 메커니즘은 매우 광범위한 시스템 디자인을 수행하는데 사용될 수 있다. 디자인에는 프로그램을 보호하기 위해 단지 작은 세그먼테이션의 사.. 2023. 3. 26.
[무근본 OS 만들기] 현재까지의 과정(부트로더-> 커널 엔트리 포인트-> C언어. Kernel32) ▶ 현재 디렉토리 구성 1. 부트로더(00. BootLoader) ▶ 디렉토리 구성 1-1. BootLoader.asm - .text 섹션. - BIOS가 부트로더를 찾아 0x7C00 번지에 올려줌. - 코드 세그먼트, 데이터 세그먼트를 0x07C0 으로 초기화. - 스택을 0x0000:0000~0x0000:FFFF 영역에 64KB 크기로 생성 - 부트 로더를 제외한 MINT64 OS 이미지 크기의 섹터를 정의한다. - BIOS 인터럽트 콜을 사용해 디스크에서 OS 이미지를 로딩한다. + http://cotkdrl1.blog.me/10148806030 참조. 0 번 트랙, 0번 헤드, 2번 섹터에서부터 시작하여 이후에 존재하는 모든 데이터를 메모리로 읽어온다. 메모리에 올리는.. 그 위치는 0x10000.. 2023. 3. 26.
[무근본 운영체제(OS) 공부] 실행파일이 메모리에 올라갔을 때의 그림 PE 파일 포맷에 대하여.... http://blog.naver.com/PostView.nhn?blogId=mystyle1057&logNo=110147181741&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView 참조 2023. 3. 26.
[무근본 OS 만들기] 현재까지의 과정 ② (부트로더-> 커널 엔트리 포인트-> C언어. Kernel32) 2. 커널(01. Kernel32) ▶ 디렉터리 구성 일주일 전에 정리하던 내용을 다시 정리하겠다. 0x10000 번지 부터 512 바이트의 공간을 차지하는 EntryPoint.bin 에서 0x10200 번지 부터 존재하는 Kernel32.bin으로 넘어와야 할 차례다. Kernel32.bin은 본격적인 C언어 커널부분이다. 그럼 Kernel32.bin은 어떻게 구성되는가? 를 정리해보고자 한다. ① C 코드를 넣는다? - C 코드는 어셈블리어 코드와 달리 컴파일과 링크 과정을 거쳐서 최종 결과물이 생성됨 * 컴파일 - 소스 파일을 중간 단계인 오브젝트 파일로 변환하는 과정으로 소스 파일을 해석하여 코드 영역과 데이터 영역으로 나누고, 이러한 메모리 영역에 대한 정보를 생성하는 단계 * 링크 - 링크 단.. 2023. 3. 26.
[무근본 안드로이드 사진첩] Out of memory 커스텀 리스트 뷰인 사진첩을 위아래로 왔다갔다하면 결국 Out of memory on a ~ 하면서 꺼지는 현상. 리스트 뷰 내에 용량이 큰 사진이 위치할 때 그런 오류가 훨씬 잘 발생한다. * GC란?: http://beautyrain.tistory.com/3 * 힙 메모리란?: http://runtoyourdream.tistory.com/237 * 안드로이드의 램고자 현상의 원인: http://blog.naver.com/dr_insect?Redirect=Log&logNo=80171034051 * 안드로이드 메모리 관리에 대한 실험: http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=130262 힙 메모리 관련 급 궁금...↓ * (C, C+.. 2023. 3. 26.
[무근본 안드로이드 사진첩] 리스트 뷰를 켤 때마다 같은 목록이 추가되는 현상.. [문제점] 내가 만든 사진첩은 리스트 뷰로 이루어져 있다. 사진첩을 처음 실행시킬 때에는 서버에 있는 사진(3개라고 하자) 3개만 리스트 뷰에 잘 나타난다. 그런데 문제는 이를 다시 실행시켰을 때(액티비티가 완전히 꺼지지 않은 상태에서....task kill을 했다가 다시 실행시키면 문제는 없다.) 사진을 도중에 추가하지 않았음에도 리스트가 마치 복제...번식... 한 듯이 기존에 있던 3개가 한 번 더 추가되어 6개로 늘어나있다. 같은 것이 또 쌓인 모양이 되는데.... 이클립스로 다시 컴파일하면 리스트가 원래대로 3개로 되는 것을 확인할 수 있었다. 문제는 간단했다. 액티비티인 SnowPhotoViewer에다가 이미지 경로(외 여러가지)를 담는 ArrayList인 alist를 전역으로 선언해놨기 때문.. 2023. 3. 26.
[무근본 네트워크 공부] CSMA/CD 프로토콜에서는 데이터를 보내는 중에만 충돌을 감지할 수 있다? 1-2-3-①. CSMA/CD(carrier sense multiple access with collision detection) . . 충돌을 감지하기 위해서는 데이터가 가장 멀리까지 가서 충돌이 난 경우까지 생각하여 프레임 사이즈가 보내려는 메시지 내용의 두 배 이상이 되어야 한다. 즉, 프레임을 보내는 데 걸리는 시간이 Propagation time의 두 배 이상이 되어야 한다. (Tfr>=2Tp) => 일정 길이 이하의 데이터를 송신할 경우 충돌을 검출할 수 없다. . . CSMA/CD에 대한 설명 중 이부분이 의문.. 이 말은 즉... CSMA/CD 프로토콜에서는 데이터를 보내는 중에만 충돌을 감지할 수 있다는 것인데... 충돌 메시지가 어차피 날아 올텐데 왜 그러는지.. => 충돌이 나면 la.. 2023. 3. 26.
[무근본 카프카 큐(Kafka Queue) 공부] 카프카 큐를 사용하는 이유와 다른 비슷한 제품들 특징 비교 소개(feat. 레빗 큐) 카프카(Kafka) 큐를 사용하는 이유는 다양합니다. 대표적인 이유는 다음과 같습니다. 대용량 데이터 처리: 카프카는 대용량의 데이터 처리를 지원하며, 분산환경에서 동작하여 다수의 노드에서 데이터 처리를 가능하게 합니다. 이러한 특성으로 인해, 대규모 데이터 처리 및 분석에 적합한 시스템입니다. 실시간 처리: 카프카는 실시간 데이터 처리를 지원하며, 스트리밍 처리 기능을 제공합니다. 이러한 특성으로 인해, 실시간 데이터 처리 및 분석에 적합한 시스템입니다. 내구성: 카프카는 저장된 메시지를 안정적으로 보관하여, 시스템 장애나 다운 타임 발생 시에도 데이터를 보호할 수 있습니다. 이러한 특성으로 인해, 안정적인 데이터 처리를 위한 시스템으로 사용됩니다. 확장성: 카프카는 클러스터로 구성되어 있으며, 브로커.. 2023. 3. 26.
[무근본 스프링(Spring Framework) 공부] 스프링에서 Map 형태로 데이터 리턴하기 - 왕초보도 이해하는 스프링 프레임워크 Spring에서 Map 형태로 데이터를 리턴하는 경우는 다양합니다. 가장 일반적인 예시는 Controller에서 JSON 형태의 데이터를 리턴하는 경우입니다. Spring MVC는 Jackson이나 Gson 같은 JSON 라이브러리를 사용하여 자동으로 Map 형태로 데이터를 변환하고 JSON으로 출력합니다. 예를 들어, 다음과 같은 Controller 메소드가 있다고 가정해봅시다. @GetMapping("/students") public Map getStudents() { Map students = new HashMap(); students.put("Alice", 95); students.put("Bob", 85); students.put("Charlie", 90); return students; } 위.. 2023. 3. 26.
[무근본 자바(Java) 공부] 자바에서 Map 자료구조는 언제 쓰일까? - 왕초보도 이해하는 자바 Java에서 Map은 key-value 쌍으로 데이터를 저장하는 자료구조입니다. Map은 매우 유용하게 사용되며, 특히 데이터를 빠르게 검색할 수 있습니다. 다음과 같은 상황에서 Map을 사용할 수 있습니다. 학생들의 성적 정보를 저장하는 경우 학생의 이름을 key로 사용하고, 해당 학생의 성적을 value로 사용하여 Map에 저장할 수 있습니다. 이렇게 하면 이름으로 쉽게 학생의 성적을 찾을 수 있습니다. 지역별 날씨 정보를 저장하는 경우 각 지역을 key로 사용하고, 해당 지역의 날씨 정보를 value로 사용하여 Map에 저장할 수 있습니다. 이렇게 하면 지역별로 쉽게 날씨 정보를 찾을 수 있습니다. 주문 정보를 저장하는 경우 각 주문 번호를 key로 사용하고, 해당 주문의 상세 정보를 value로 .. 2023. 3. 26.
[무근본 자바(Java) 공부] Gradle이 대체 뭐야? - 왕초보도 이해하는 자바 Gradle은 자바 프로그래밍 언어를 위한 오픈 소스 빌드 자동화 도구입니다. Gradle은 Apache Maven 및 Apache Ant와 같은 다른 빌드 도구와 비교할 때, 선언적 DSL(Domain-Specific Language)로 작성된 Groovy 또는 Kotlin 스크립트를 사용하여 빌드 프로세스를 정의합니다. Gradle은 다양한 프로젝트 유형 및 다양한 통합 개발 환경에서 사용할 수 있습니다. 또한, Gradle은 빌드 캐시, 병렬 빌드, 그리고 빌드 캐시를 이용한 효율적인 빌드 등의 기능을 제공합니다. Gradle은 Android 앱 개발에도 널리 사용되며, 이를 통해 Android Studio 및 다른 Android 개발 도구에서 쉽게 사용할 수 있습니다. Gradle을 사용하여 Ja.. 2023. 3. 26.
[무근본 자바(Java) 공부] 메이븐(Maven)이 대체 뭐야? - 왕초보도 이해하는 자바 프로그래밍 기초상식 Maven은 자바 기반의 프로젝트 관리 도구입니다. 프로젝트 개발, 빌드, 테스트, 배포 등을 편리하게 처리할 수 있도록 도와줍니다. Maven은 프로젝트의 의존성 관리를 위해 중앙 저장소에서 필요한 라이브러리를 다운로드하고 관리할 수 있습니다. 이를 통해 프로젝트에서 사용되는 라이브러리의 버전 충돌 문제를 예방할 수 있습니다. 또한 Maven은 프로젝트의 빌드를 자동화하여 개발자가 수동으로 빌드하는 수고를 덜어줍니다. Maven은 프로젝트의 빌드 순서를 정의하고 필요한 플러그인을 실행하여 빌드 과정을 자동화합니다. 이를 통해 빌드 시간을 단축하고 빌드 오류를 예방할 수 있습니다. 예를 들어, Maven을 사용하여 Spring Framework 기반의 웹 애플리케이션을 개발하는 경우, Maven은 Spr.. 2023. 3. 26.
[무근본 스프링(Spring Framework) 공부] 카프카 큐(Kafka Queue)를 스프링 프레임워크와 연결하는 예제 카프카는 대규모 데이터 처리를 위한 분산 메시징 시스템으로, 스프링 프레임워크와 함께 사용하면 더욱 편리한 애플리케이션 개발이 가능합니다. 이 글은 스프링 부트와 스프링 카프카를 사용하여 카프카와 연결하는 예제 코드를 포함하고 있습니다. 1. Maven 또는 Gradle을 사용하여 스프링 카프카 및 카프카 클라이언트를 프로젝트에 추가합니다. org.springframework.kafka spring-kafka 2.7.6 org.apache.kafka kafka-clients 3.0.0 2. 카프카 프로듀서와 컨슈머를 생성할 때 사용할 설정을 정의합니다. @Configuration @EnableKafka public class KafkaConfig { @Value("${kafka.bootstrap-serv.. 2023. 3. 26.