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

무근본 IT 지식 공유127

파이썬 Pandas csv 파일 읽기 오류사항 해결 방법(read_csv) / groupby [질문] 아래 명령문을 그대로 작성했는데 오류가 발생해 질문합니다참고로 mac os 입니다 import pandas as pd weather=pd.read_csv('weather.csv',encoding="cp949") weather['month']=pd.DatetimeIndex(weather['일시']).month month_weather=weather.groupby('month').mean() print(month_weather) weather['month'] ~ 까지는 잘 되는데 groupby 문에서 오류가 발생합니다.. 문제가 무엇일까요 [답변]macOS에서는 cp949 인코딩을 사용하는 것이 일반적이지 않습니다. cp949 인코딩은 주로 한국어 Windows 시스템에서 사용되므로 macOS에서 .. 2023. 11. 23.
자바스크립트에서 웹소켓 호출방법 JavaScript에서 웹소켓 호출 방법을 알려드리겠습니다. 웹소켓은 웹 페이지와 서버 간의 양방향 통신을 가능하게 하는 기술입니다. 이를 사용하기 위해선 먼저 WebSocket 객체를 생성해야 합니다. 아래는 JavaScript에서 웹소켓을 사용하는 기본적인 방법입니다: 1.WebSocket 객체 생성: var ws = new WebSocket('ws://example.com/socketserver'); 2.이벤트 핸들러 연결:•onopen: 연결이 성공적으로 열렸을 때 실행됩니다. ws.onopen = function(event) { // 연결이 열렸을 때 수행할 작업 }; 2. •onmessage: 서버로부터 메시지를 받았을 때 실행됩니다. ws.onmessage = function(event) {.. 2023. 11. 23.
자바스크립트에서 특정 문자 포함 여부 확인 방법 자바스크립트에서 특정 변수에 특정 문자가 포함되어 있는지 확인하기 위해서는 주로 includes() 메서드를 사용합니다. 이 메서드는 문자열에서 특정 문자열이 포함되어 있는지 여부를 확인할 때 유용합니다. 사용 방법은 다음과 같습니다. 예를 들어, 문자열 변수 str에 문자열 “hello”가 포함되어 있는지 확인하려면 다음과 같이 작성할 수 있습니다: let str = "Hello, world!"; let containsHello = str.includes("hello"); // 대소문자를 구분합니다. 이 코드에서 containsHello는 str이 “hello”를 포함하는 경우 true를, 그렇지 않은 경우 false를 가질 것입니다. 참고로 includes() 메서드는 대소문자를 구분하므로, 대소문자.. 2023. 11. 23.
C# 에서 httpclient 사용 시 인증서 무시 방법 .NET Framework 4.5.2에서 SSL 인증서를 무시하는 방법 NET Core나 최신 버전의 .NET Framework와 약간 다를 수 있습니다. 하지만, 기본적인 개념은 동일합니다. ServicePointManager 클래스를 사용하여 전역적으로 SSL 인증서 검증을 오버라이드할 수 있습니다. 다음은 .NET Framework 4.5.2에 맞는 예제 코드입니다: using System; using System.Net; using System.Net.Http; using System.Net.Security; using System.Security.Cryptography.X509Certificates; class Program { static void Main() { ServicePointMana.. 2023. 11. 23.
Oracle DB 쿼리 출력시 컬럼명 제거 방법 Oracle 데이터베이스에서 쿼리를 실행할 때 결과로 반환되는 데이터에 컬럼명을 포함하지 않으려면 SQL*Plus 또는 SQLcl과 같은 클라이언트 툴을 사용하고 있을 때 몇 가지 옵션을 설정할 수 있습니다. 여기에 일반적인 방법을 소개합니다: 1.SET PAGESIZE 0 사용하기: 이 명령어는 페이지 크기를 0으로 설정하여 헤더와 풋터를 제거합니다. 결과적으로 컬럼명과 페이지 번호도 표시되지 않습니다.2.SET HEADING OFF 사용하기: 이 명령어는 결과 집합에서 컬럼명을 숨깁니다. 예를 들어, SQL*Plus 또는 SQLcl에서 쿼리를 실행하기 전에 다음 명령을 사용할 수 있습니다: SET PAGESIZE 0SET HEADING OFFSELECT * FROM your_table; 이 방법은 쿼.. 2023. 11. 23.
리눅스쉘 / ls명령 시 조회되는 폴더별 ls 결과의 라인 수를 각각 출력하는 방법(예시) Work1, work2, work3 ... 폴더별 ls 결과의 라인 수를 각각 출력하는 방법 ? 특정 폴더(`Work1`, `Work2`, `Work3`, 등) 내부의 `ls` 명령어 결과의 라인 수를 출력하고 싶다면, Bash 쉘 스크립트에서 반복문과 파이프라인을 사용할 수 있습니다. 아래의 스크립트는 각 `Work` 폴더에 대해 `ls` 명령어의 출력 라인 수를 계산하고 출력합니다. #!/bin/bash for folder in Work1 Work2 Work3; do if [ -d "$folder" ]; then # 폴더가 존재하는지 확인 count=$(ls -1 "$folder" | wc -l) # 폴더 내 항목 수 계산 echo "$folder has $count items" else echo ".. 2023. 11. 23.
[TCP] NETSTAT명령어 사용 시 CLOSE_WAIT 상태란? `CLOSE_WAIT` 상태는 Linux의 `netstat` 명령어를 사용할 때 볼 수 있는 TCP 네트워크 상태 중 하나입니다. 이 상태는 TCP 연결이 종료되는 과정에서 나타나며, 특히 다음과 같은 상황을 나타냅니다: `CLOSE_WAIT` 상태는 종종 시스템이 여전히 자원을 보유하고 있음을 나타냅니다. 만약 이 상태가 과도하게 오래 지속되면, 이는 일반적으로 응용 프로그램의 버그나 부적절한 관리로 인해 발생하는 문제일 수 있습니다. 결론적으로, `CLOSE_WAIT` 상태는 정상적인 TCP 연결 종료 과정의 일부이지만, 이 상태가 지속적으로 유지되면 네트워크 자원이 낭비되거나 시스템 성능에 영향을 줄 수 있습니다. 이러한 상황에서는 응용 프로그램의 로그를 확인하거나 네트워크 관리 도구를 사용하여 문.. 2023. 11. 22.
리눅스 Curl https 인증서 오류 무시 옵션 `curl` 명령어를 사용할 때 HTTPS 인증서 검증을 무시하려면 `-k` 또는 `--insecure` 옵션을 사용합니다. 예를 들면: curl -k https://example.com 이 명령은 `curl`이 서버의 SSL 인증서의 유효성을 검사하지 않고 연결을 수행하게 합니다. 이는 테스트 목적으로 유용하지만, 보안상의 이유로 실제 운영 환경에서는 권장되지 않습니다. 2023. 11. 21.
C# 폴더 내 파일 목록 추출 방법 C#에서 폴더 내의 파일 목록을 추출하는 방법은 ? `System.IO` 네임스페이스에 있는 `Directory` 클래스를 사용하는 것입니다. `Directory.GetFiles` 메서드를 사용하면 지정된 폴더 내의 파일 목록을 가져올 수 있습니다. 다음은 기본적인 예제 코드입니다: using System; using System.IO; class Program { static void Main() { string folderPath = @"C:\your\folder\path"; // 폴더 경로 지정 try { // 폴더 내의 모든 파일 목록을 가져옴 string[] files = Directory.GetFiles(folderPath); foreach (string file in files) { Cons.. 2023. 11. 21.
C# 특정 디렉토리 경로에서 특정 이름의 파일 찾기 C#에서 특정 디렉토리 경로에서 특정 이름의 파일을 찾으려면 ? `System.IO.Directory` 클래스의 `GetFiles` 메서드를 사용하되, 검색 패턴을 지정하여 해당 이름을 가진 파일만 찾을 수 있습니다. 예를 들어, 특정 디렉토리에서 "example.txt"라는 이름의 파일을 찾으려면 다음과 같은 코드를 작성할 수 있습니다: using System; using System.IO; class Program { static void Main() { string directoryPath = @"C:\your\directory\path"; // 디렉토리 경로 string searchPattern = "example.txt"; // 찾고자 하는 파일 이름 try { // 지정된 패턴에 맞는 파일들의.. 2023. 11. 21.
CC BY-SA 라이센스란? Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0)는 저작권이 있는 작품을 공유하고 수정할 수 있는 권한을 제공하는 라이센스입니다. 이 라이센스의 주요 특징은 다음과 같습니다: 1. **저작자 표시(Attribution)**: 사용자는 원래 저작자를 인정해야 합니다. 이는 저작자가 요구하는 방식대로 이루어져야 합니다. 2. **동일조건 변경허락(ShareAlike)**: 이 라이센스를 사용하여 수정된 작품은 원래 작품과 동일한 라이센스 하에 배포되어야 합니다. 즉, 원작을 수정하거나 변형한 새로운 작품은 원작과 같은 CC BY-SA 라이센스를 적용해야 합니다. 3. **자유로운 사용**: 이 라이센스 하에 있는 .. 2023. 11. 21.
FTP 서버가 보안에 취약한 이유 FTP (File Transfer Protocol)는 몇 가지 이유로 보안에 취약합니다: 1. **텍스트 기반 인증 FTP는 사용자 이름과 비밀번호를 평문(암호화되지 않은 형태)으로 전송합니다. 이는 중간자 공격에 매우 취약하게 만듭니다. 2. **데이터 전송 암호화 부재FTP는 데이터 전송 시 암호화를 제공하지 않습니다. 따라서 전송되는 모든 데이터(파일, 명령, 로그인 정보 등)가 도청될 위험이 있습니다. 3. **명령과 데이터의 분리FTP는 명령과 데이터를 별도의 채널을 통해 전송합니다. 이는 데이터 전송 도중 명령 채널을 하이재킹하는 공격에 취약하게 만듭니다. 4. **악의적 파일 업로드와 다운로드인증이 약하거나 전혀 없는 FTP 서버는 악의적인 사용자가 민감한 파일을 업로드하거나 다운로드할 수 .. 2023. 11. 21.
아누이노 Serial에 대해 [질문사항]아두이노 serial 질문 Serial.print() 경우 ()안에 그냥 숫자 45를 넣어도 45가 출력되나요? 그럼 "45"도 똑같은 값이 나오나요? 숫자는 각 숫자에 대한 아스키 문자로 사용하여 인쇄된다는게 무슨 뜻인가요? Serial.println() 이건 위에랑 결과는 똑같은데 줄 바꿈해주는 거라고 생각하면 되는건가요? Serial.write() 괄호안에 (char 데이터)를 넣어서 char 데이터에 해당하는 ASCII 코드 값을 문자로 출력이라 하는데 이건 Serial.write(65) 하면 A가 출력되는 건가요? Serial.print("A") = Serial.write("A") = Serial.print(2+0x20) = Serial.write(2+0x20) = 답은 뭔가요 이해가.. 2023. 9. 20.
AWS의 eks 사용법에 대하여 [질문사항]제가 aws의 eks를 이용하려고 하는데 web,app은 wordpress를 이용하여 구축하고 db는 rds를 사용하고, wordpress의 php 파일들을 efs를 사용하여 보관하려고 합니다. 이런식의 구성도일 때 eks를 사용해서 구현해야 하는 부분은 어떤 부분이 있을까요 ?? 원래는 eks, efs, rds, wordpress 를 연동하는 걸로 하려고 했는데 다른 사람이 말한 부분이 있어 헷갈립니다. https://velog.io/@squarebird/AWS-EKS%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Wordpress-%EB%B0%B0%ED%8F%AC-%EB%B0%8F-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%8113 이 주소를 보며 따라.. 2023. 9. 20.
시스템 프로그래밍 makefile 간단 문제 예시 [문제] 메인함수: 변수 a, b, c 함수1: - 변수 x - ax^2+bx+c에 대한 결과 출력 함수2: - 변수 x, y - ax+by+c에 대한 결과 출력 함수3: - ax^2+bx+c 함수의 두 해를 출력(근해 공식) a, b, c, x, y의 값은 임의로 지정 Makefile 및 소스코드 포함 Makefile은 clean 명령어가 포함되어야 하고, 실행파일을 제외한 object 파일을 삭제 해야 함 제출은 tar 파일 하나로 제출하며, tar파일에 제출에 필요한 파일들이 포함 되어야 함 ------------------------------------------- main.c#include #include "functions.h" int main() { double a = 1, b = 2, c.. 2023. 9. 19.
[무근본운영체제] OS에서 시스템 API란 커널은 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 인터페이스를 제공합니다. 사용자나 응용 프로그램이 하드웨어와 직접 통신하는 것은 복잡하고 위험할 수 있기 때문에, 커널을 통해 이를 간단하게 만드는 '시스템 API'가 필요합니다. 1. 시스템 API의 정의 시스템 API는 Application Programming Interface의 약자로, 응용 프로그램이 운영체제와 통신할 수 있도록 도와주는 일련의 루틴, 프로토콜, 도구들을 의미합니다. 이를 통해 프로그래머는 하드웨어와 직접적인 통신을 하지 않아도 원하는 기능을 구현할 수 있습니다. 2. 시스템 API의 중요성 1. 추상화 API는 하드웨어나 다른 소프트웨어의 내부 구조나 작동 원리를 숨기면서 필요한 기능만을 제공합니다. 이러한 추상화는 .. 2023. 9. 19.
[무근본파이썬] 메세지 큐와 그 중요성: 온라인 쇼핑몰 예시와 코드로 이해하기 메세지 큐와 그 중요성: 온라인 쇼핑몰 예시와 코드로 이해하기 1. 메세지 큐란 무엇인가? 메세지 큐(Message Queue)는 프로세스나 스레드, 심지어는 서로 다른 서버나 애플리케이션 간에 메시지를 비동기적으로 교환하는 데 사용되는 데이터 구조입니다. 메세지 큐는 메시지를 순차적으로 저장하고, 메시지를 보내는 쪽(Producer)과 받는 쪽(Consumer) 사이에서 메시지를 전송하는 역할을 합니다. 2. 왜 메세지 큐를 사용하는가? 메세지 큐를 사용하면 시스템 간의 통신을 비동기적으로 처리할 수 있습니다. 이는 특정 작업이나 요청에 대한 응답을 즉시 기다리지 않고, 해당 작업을 큐에 넣고 다른 작업을 계속 수행할 수 있음을 의미합니다. 따라서, 과도한 트래픽이나 부하가 발생했을 때 시스템의 병목 .. 2023. 9. 19.
[파이썬,C언어] 행렬 M에서, N번째로 큰 수를 찾아야 합니다. 다음과 같은 문제가 있습니다. 문제에서는 M이라는 N * N 행렬이 있습니다. 이 행렬에서는 각각의 원소들이 분리되어 있습니다. 그리고 각각의 원소는 서로 다른 값을 가지고 있습니다. 이 행렬 M에서, N번째로 큰 수를 찾아야 합니다. 즉, 6 * 6 행렬에서 6번째로 큰 수를 찾는 것이 목표입니다. 이 문제에 대한 알고리즘을 설명해주시면 감사하겠습니다. 또한 수도코드도 같이 알려주시면 감사하겠습니다. -------------------------------------------------- N * N 행렬에서 N번째로 큰 수를 찾는 문제에 대한 알고리즘은 다음과 같습니다. 1. **정렬 방법을 사용하는 알고리즘**: - 먼저, N * N 행렬의 모든 원소를 하나의 리스트에 넣습니다. - 이 리스트를 내.. 2023. 9. 17.
C언어, 파이썬 이진탐색에 관하여 (샘플문제, 수도코드) 문제는 다음과 같습니다. N * N 행렬이 있습니다. 각각의 행과 열은 오름차순으로 구성되어 있습니다. 그리고 정수 k가 주어집니다. 행렬 내에서 이 k의 위치를 구하는 것이 알고리즘의 목표입니다. 만약 k가 2개 이상일 시, k의 위치는 두개의 위치 중 하나의 위치를 랜덤하게 출력합니다. 첫번째 입력으로는 행렬이 들어옵니다. 두번째 입력으로는 정수 k의 값이 들어갑니다. 그리고 output은 (행,열) : position of ‘입력받은 정수‘ 입니다. input과 output은 다음과 앝이 입력되어집니다. 이 알고리즘 문제의 풀이과정과 수도코드를 알려주시면 진심으로 감사드립니다. ------------------------------------------------ 이 문제를 효율적으로 해결하려면 이.. 2023. 9. 17.
무료로 사용할 수 있는 클라우드 기반의 파이썬 실행환경 소개 [궁금한 사항]python을 모바일에서 실행하려고 하는데 긴 시간이 걸리는 작업이라서 핸드폰이 꺼져 있어도 계속 코드를 실행하는 그런 사이트 좀 추천해주세요, 단, 제 코드를 비공개로 할 수 있는 걸로요, 무료로 제 코드 비공개할 수 있는 거 원해요,( Repl.it 은 돈내야지 비공개더라고요) [답변]무료로 사용할 수 있는 클라우드 기반의 Python 실행 환경을 찾으시는 것 같습니다. 핸드폰이 꺼져 있어도 코드를 실행하게 하는 것은 서버나 클라우드 기반 환경을 찾아보시는 것이 좋습니다. 1. Google Colab: Google에서 제공하는 무료 Jupyter 노트북 환경입니다. GPU를 무료로 사용할 수 있기도 합니다. 주의하실 점은 실행 후 일정 시간이 지나면 VM이 재시작됩니다. 하지만, 핸드폰.. 2023. 9. 17.
(프로그래밍) Parameter와 Argument의 차이점이 있다고???-왕초보도 이해하는 프로그래밍 자, 오늘 우리가 함께 파헤쳐 볼 주제는 바로 프로그래밍에서의 ‘Parameter’와 ‘Argument’의 차이점입니다. 이 주제를 이해하기 위해 먼저 어느 가을 날, 우리의 향기로운 일상을 생각해봅시다. 당신이 좋아하는 카페에 들어가 커피를 주문하려고 합니다. 카페 앞에는 여러 메뉴판들이 있습니다. 그 메뉴판들이 바로 함수의 ‘Parameter’와 같습니다. 메뉴판은 당신에게 커피를 주문할 때 필요한 정보들을 제시하죠. 예를 들면, 아메리카노에는 몇 스푼의 설탕을 넣을 것인지, 우유는 얼마나 추가할 것인지 등의 정보를 미리 정의해 놓은 것입니다. 이제 당신이 카운터에 가서 실제로 주문을 합니다. “아메리카노에 설탕 두 스푼, 우유는 조금만 추가해주세요.” 바로 이 순간, 당신이 전달한 이 실제 값들, .. 2023. 9. 16.
‘Call by Value’와 ‘Call by Reference’에 대하여 -왕초보도 이해하는 자바 우리 오늘의 주제로 떠오른 ‘Call by Value’와 ‘Call by Reference’에 대하여 깊게 파헤쳐 보겠습니다. 이 두 가지 방법은 프로그래밍 세계에서 자주 마주치게 되는 개념입니다. 이야기의 깊은 물결에 몸을 맡기기 전, 먼저 간단한 예를 들어봅시다. 당신이 친구에게 꽃다발을 선물한다고 생각해 보세요. 이 꽃다발을 직접 주는 경우와, 꽃다발의 사진을 보내는 경우, 두 가지 상황을 상상해보시기 바랍니다. 첫 번째 상황이 ‘Call by Reference’와 유사하며, 두 번째 상황은 ‘Call by Value’와 닮아 있습니다. 자, 이제부터 저희의 여행이 시작됩니다. ‘Call by Value’는 값에 의한 호출 방식으로, 함수에 값을 넘겨줄 때 메모리상의 값을 복사하여 전달합니다. 따라.. 2023. 9. 16.
Git과 Github 차이점이 대체 뭐야?-왕초보도이해하는 프로그래밍 안녕하세요, 여러분. 오늘 저는 여러분께 Git과 GitHub의 차이에 대해 이야기를 나누려고 합니다. 두 주제는 자주 혼동되는데, 사실 그 둘은 꽤 다른 개념입니다. 자, 그럼 시작해보죠. 우리가 살아가는 세상에서는 많은 사물이 서로 밀접한 관계를 가지고 있죠. 예를 들면, 바다와 물고기, 하늘과 별, 그리고 우리의 주제인 Git과 GitHub도 마찬가지입니다. 그런데, 이 둘은 정말로 같은 것일까요? 그것이 아닙니다. Git과 GitHub는 서로 다른 개체이지만, 하나 없이 다른 하나는 그 존재의 의미를 잃게 됩니다. 먼저 Git에 대해 이야기해보죠. Git은 버전 관리 시스템(VCS)의 하나입니다. 소스 코드의 변경 사항을 추적하고 여러 사람들이 동시에 작업할 수 있게 해주는 도구죠. 이렇게 표현하.. 2023. 9. 16.
프로그래밍에서 추상화가 대체 뭐야?-왕초보도 이해하는 자바 프로그래밍에서 “추상화”라는 말씀을 들어보셨나요? 이는 복잡한 문제나 시스템을 단순하게 만드는 방법을 의미합니다. 프로그래머분들께서는 이런 추상화를 통해 핵심 기능에만 집중하실 수 있죠. 이것을 예를 들어 설명드리자면, 건축가가 건물을 설계할 때 각 층의 세부 사항은 생각하지 않고 전체적인 구조만을 그릴 때와 비슷한 원리입니다. 추상화는 프로그래밍에서도 여러 형태로 표현되곤 합니다. 함수나 메소드를 통해 특정 작업을 감추거나, 클래스와 객체로 데이터와 기능을 함께 묶는 것도 그 예시 중 하나입니다. 이렇게 만들어진 코드는 다시 사용하기도, 수정하기도 편리하답니다. 일상생활에서도 추상화의 예를 찾아볼 수 있습니다. 전기 스위치를 누를 때, 그 안의 복잡한 원리나 회로를 모르고도 사용할 수 있는 이유, 그것.. 2023. 9. 16.
오버로딩, 오버라이딩 차이가 대체 뭔데?-왕초보도 이해하는 자바 자, 여러분! 오늘 우리가 함께 다뤄볼 주제는 바로 프로그래밍에서 자주 마주치게 되는 두 가지 중요한 개념, '오버로딩'과 '오버라이딩'입니다. 이 두 개념, 들어보셨나요? 혹시 두 개념을 혼동하신 적 있으신가요? 그렇다면 지금부터 함께 천천히 그 차이를 파헤쳐 보겠습니다. 먼저, 오버로딩에 대해서 얘기해보죠. 오버로딩이란, 한 마디로 말해서 같은 이름의 함수나 메소드를 여러 개 만드는 것입니다. 그런데 이때 중요한 건, 그 안의 매개변수의 종류나 수가 다르다는 것이죠. “아, 그럼 같은 이름으로 다양한 일을 할 수 있겠네!”라고 생각하시는 분들, 바로 그렇습니다! 오버로딩의 핵심은 바로 ‘다양성’입니다. 마치 우리가 평소에 ‘읽다’라는 동사를 사용할 때 ‘책을 읽다’, ‘편지를 읽다’처럼 상황에 따라 .. 2023. 9. 16.
가비지 컬렉터가 대체 뭐야?-왕초보도 이해하는 프로그래밍 가비지 콜렉터에 대해 이야기를 시작하려 합니다. 너무나도 평범하게 쓰이는 용어지만, 무엇인지 자세히 알아본 적이 있는지요? 지금부터 그 세계를 함께 들여다보겠습니다. 본론에 들어가기 앞서, 컴퓨터 메모리라는 장소에 대해 생각해 보죠. 우리가 프로그램을 실행하면, 그 프로그램은 메모리에 데이터를 저장합니다. 그 데이터는 프로그램이 작동하는 동안 지속되죠. 그런데, 생각해 보면 필요 없어진 데이터도 분명히 있을 겁니다. 그렇다면 그 필요 없어진 데이터는 어떻게 되는 걸까요? 그래서 등장하는 게 바로 ‘가비지 콜렉터’입니다. 그 이름에서 느껴지는 것처럼, 필요 없어진 ‘가비지’ 즉, 쓰레기 데이터를 ‘콜렉트’하는 역할을 하는 것이죠. 정확히 말하면, 더 이상 사용되지 않는 메모리를 회수하여 다시 사용 가능한 .. 2023. 9. 16.
API란 뭘까요 ? -왕초보도 이해하는 프로그래밍 API, 그것은 무엇일까요? API는 'Application Programming Interface'의 약자로, 어플리케이션 프로그래밍 인터페이스라는 뜻이죠. 어렵게 들릴 수 있지만, 사실 이건 컴퓨터 세상에서 엄청 중요한 역할을 하는 친구랍니다. 먼저, 축약형으로 이야기한다면, API는 소프트웨어들 사이의 연결고리 같은 거라고 보면 돼요. 쉽게 말해, 한 프로그램이 다른 프로그램과 어떻게 소통하고, 정보를 주고 받을 것인지를 정의해놓은 일종의 규약이랍니다. 시간의 흐름 속에서, API는 그 중요성만큼 변천의 과정을 겪었죠. 과거에는 간단한 명령어들로 이루어진 소규모의 인터페이스였지만, 지금은 클라우드 서비스, 소셜 미디어, 다양한 디지털 서비스들이 서로 연결될 수 있게 해주는 거대한 구조로 발전했어요... 2023. 9. 16.
[무근본개발지식] TDD(Test Driven Development)가 대체 뭔데 !? - 쉽게 설명해드림 TDD (Test-Driven Development)는 소프트웨어 개발 방법론 중 하나로, 코드를 작성하기 전에 테스트를 먼저 작성하고, 이 테스트를 통과하는 코드를 작성하는 방식을 의미합니다. TDD의 주요 과정은 다음과 같습니다: 1. 실패하는 테스트 작성: 원하는 기능에 대한 테스트 케이스를 먼저 작성합니다. 이 시점에서는 테스트가 실패합니다. 2. 코드 작성: 테스트 케이스를 통과할 수 있는 최소한의 코드를 작성합니다. 3. 테스트 실행: 작성한 코드가 테스트를 통과하는지 확인합니다. 4. 리팩토링: 코드를 개선하고 최적화합니다. * 예시: 간단한 덧셈 함수 작성 (파이썬 기준) 1. 실패하는 테스트 작성 def test_add(): result = add(1, 2) assert result ==.. 2023. 8. 23.
[무근본 WEB(웹)표준] Restful API 가 대체 뭔데 난리야 !? - 쉽게 알려드림 RESTful API는 웹 서비스의 설계와 구현에 있어서 널리 사용되는 아키텍처 스타일입니다. REST는 "Representational State Transfer"의 약자로, 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍처 원칙 집합을 의미합니다. RESTful API는 이러한 REST 원칙을 따르는 웹 서비스 API를 지칭합니다. RESTful API의 주요 특징은 다음과 같습니다: 1. 자원(Resource) 중심의 아키텍처 RESTful API는 웹 서비스의 자원을 URL로 표현합니다. 예를 들어, 사용자 정보를 관리하는 서비스에서는 `/users`라는 URL을 통해 사용자 자원에 접근할 수 있습니다. 2. 상태를 유지하지 않음 (Stateless) 각 요청은 서버에서 어떠한 상태 정.. 2023. 8. 23.
[무근본자바(JAVA)] OOP의 다섯가지 설계 원칙이 뭔데? 쉽게 설명해줄게 OOP의 5가지 설계 원칙은 "SOLID"라는 약어로 알려져 있습니다. SOLID 원칙은 객체 지향 프로그래밍과 설계에 있어서 효율적이고, 유지보수가 용이한, 확장성 있는 시스템을 만들기 위한 핵심 원칙들을 의미합니다. 각 원칙은 다음과 같습니다: 1. S - 단일 책임 원칙 (Single Responsibility Principle, SRP) - 한 클래스는 하나의 책임만 가져야 한다는 원칙입니다. 즉, 클래스가 변경되어야 하는 이유는 오직 하나뿐이어야 합니다. 이 원칙을 따르면, 각 클래스는 명확한 목적을 가지게 되어 코드의 유지보수가 용이해집니다. 2. O - 개방-폐쇄 원칙 (Open-Closed Principle, OCP) - 소프트웨어의 구성요소(클래스, 모듈, 함수 등)는 확장에는 열려 있어.. 2023. 8. 22.