본문 바로가기

전체 글19

[SQL] JOIN에 대해 알아보자 개발자의 기본! 기초! 개발자라면 이거 모르면 바보! 바로 SQL 쿼리인데요.저는 바보가 맞구요, 회사에서 앞으로 쿼리 짤 일이 많을 것 같아서 쿼리를 공부해보겠습니다. JOIN이란 한 문장으로 설명하자면"서로 다른 테이블의 행(row)을 특정 조건으로 연결해서 하나의 결과표로 만드는 것" 입니다. 여기서 우리가 생각해야할 핵심은 JOIN시에 행 개수가 어떻게 변하는가 입니다. JOIN의 기본 구조SELECT 컬럼들FROM 기준테이블 aJOIN 연결테이블 b ON a.키 = b.키;- 기준 테이블: 내가 최종적으로 보고 싶은 데이터의 중심 테이블ex) 주문 목록을 보고싶은데 옆에 사용자 이름도 보고싶어 -> 기준 : order / 연결 : user JOIN의 종류- INNER JOINJOIN이라고하면 I.. 2026. 5. 22.
Deep Learning 기초 지식 딥러닝의 발전 5단계AI/ML/DL 관점에서 크게 5단계로 개발 방법론이 진화세 단계로 나누면 SW 1.0, SW 2.0, SW 3.0으로 구분SW 1.0Rule-based Programming사람이 이미지의 특징을 직접 설계해 조건에 맞으면 고양이로 판단예: if ear_length > 10 and nose_color == 'black': catSW 1.5Conventional Machine Learning특징 추출은 사람이 설계하고, 연산 조건은 기계가 학습머신러닝 과정학습 데이터 준비이미지 수집, 특징 정의, 학습 데이터 생성모델 학습Try & Error 방식으로 최적의 연산 집합을 찾음SW 2.0Deep Learning출력 계산을 위한 모든 연산을 기계가 고안CNN, RNN 같은 구조를 사용해 데.. 2025. 2. 11.
[git] merge conflict 가 생겨도 쫄지 않고 해결하는 방법 신입 개발자에게 git은 굉장히 무섭고 사용하기 겁이 나는 도구입니다.잘못 merge를 하면 CONFLICT가 발생하고, 어느 branch에서 뭘 가져오라는거지..? 정말 헷갈립니다.이번 게시물에서는 merge conflict 충돌이 발생해도 해결할 수 있는 방법을 함께 공부해봅시다!😁 😨의도적으로 conflict를 만들어 봅시다!지금 실수하고 충돌나고 해야지 실제 협업할 때 익숙하게 할 수 있으니까요!conflict를 의도적으로 내는게 너무 킹받긴 하지만 참고 만들어봅시다. 1. main 브랜치에서 fizzbuzz.py라는 파일을 만들고 코드를 작성해줍니다.# fizzbuzz.py 파일 생성touch fizzbuzz.py# fizzbuzz.py 파일 열기vi fizzbuzz.pymain branch.. 2024. 12. 16.
[백준] 2941번 : 크로아티아 알파벳 (python) 파이썬 초보자의 멍청한 코드를 구경하실 분은 여기로 모이세요...   ▪ 문제링크https://www.acmicpc.net/problem/2941 ▪문제  🙅‍♀️ 내가 푼 코드word = input()word_list = list(word)CA = []i = 0while i  1. word를 입력받아서 word_list에 한 문자씩 리스트화 시켜줍니다.2. CA라는 크로아티아 알파벳 단위로 치환해서 입력받을 리스트를 선언해줍니다.3. word_list의 i 번째 원소를 의미하는 i가 word_list의 길이보다 작을 때까지 while문을 돌려줍니다.4. i+1의 인덱스 값도 word_list 길이를 초과하지 않는지 확인 + word_list[i] 가 c 이고 그 바로 뒤의 word_list[i+1]이.. 2024. 12. 15.
[git] 좋은 Commit Message 작성하는 방법 이 글을 보시는 분들은 git을 사용할 때 커밋 메시지를 잘 작성하시나요??저는 부끄럽게도 학부 시절 git을 통해 협업을 할 때, 버전 관리의 중요성을 몰라서 커밋 메시지를 엉망으로 작성한 경험이 있습니다...😓여러 사람과 팀을 이뤄 협업을 할 때나, 오픈 소스에 기여하게 될 때에는 커밋 메시지를 잘 작성하는 것이 정말 중요합니다!이번 게시물에서는 커밋 메시지의 중요성과 좋은 커밋 메시지 작성하는 방법을 알아보겠습니다. ✅ 커밋 메시지를 잘 작성해야하는 이유1. 변경 사항의 명확한 기록좋은 커밋 메시지는 코드가 왜, 무엇을, 어떻게 변경했는지를 명확하게 설명합니다.이것은 나중에 프로젝트의 변경 내역을 추적하거나 특정 기능이나 버그를 찾아야 할 때 유용합니다. 2. 팀원 간의 효과적인 의사소통협업 중에.. 2024. 12. 14.
[백준] 1157번 : 단어 공부 (python) 문제 링크https://www.acmicpc.net/problem/1157  내가 푼 코드from collections import Counterword = input()word_u = word.upper()count = Counter(word_u).most_common()if len(count) == 1: print(count[0][0])elif count[0][1] == count[1][1]: print("?")else: print(count[0][0])1) collections 모듈의 Counter 함수를 import 해준다.2) word를 입력받고, word_u에  upper() 함수를 통해 word를 다 대문자로 바꿔서 넣어준다.=> 대소문자를 구분하지 않고, 출력은 대문자로 .. 2024. 12. 12.
[백준] 10988번: 팰린드롬인지 확인하기 (python) 문제링크https://www.acmicpc.net/problem/10988 내가 푼 코드word = input()length = int(len(word)/2) for i in range(length): if word[i] == word[-(i+1)]: result = 1 else: result = 0 breakprint(result)1) 단어를 입력받는다2) 입력받은 단어를 2로 나눈 값을 정수화해서 length에 넣어준다      => 한 단어를 반으로 나눴을 때 앞뒤로 대칭이면 팰린드롬이니까 반씩 비교해주기 위해3) 0부터 length-1까지 for문을 돌린다.4) if word[0] == word[-1] 이면 result에 1 /  if word[1] == word[-2].. 2024. 12. 12.
[알고리즘]스택(Stack)과 큐(Queue) 쉽게 알아보기 우리가 일상에서 사용하는 접시 선반이나 영화관 줄서기에서 보이는 규칙들이 프로그래밍 세계에서도 그대로 사용된다는 사실, 알고 계셨나요? 간단히 설명하자면, 스택(Stack)이란 접시를 쌓아놓는 선반처럼 가장 나중에 올린 접시를 먼저 꺼내는 구조를 의미합니다.반면에, 큐(Queue)는 영화관에서 줄을 서는 방식처럼 가장 먼저 줄을 선 사람이 가장 먼저 처리되는 구조를 따릅니다.  이 두 자료구조는 데이터를 저장하고 처리하는 데 있어 매우 중요한 역할을 합니다. 이번 글에서는 스택과 큐의 개념을 쉽게 이해할 수 있는 비유와 함께, 프로그래밍에서 왜 중요한지 자세히 알아보겠습니다. ✅ 스택 Stack스택 Stack 이라는 단어의 뜻에서 알 수 있듯이 쌓아올린 형태의 자료구조를 의미합니다. 스택은 데이터를 후입.. 2024. 12. 11.
[알고리즘]시간복잡도(Time Complexity)와 빅 오(Big O)표기법 쉽게 이해하기 알고리즘의 효율성을 평가하는 것은 소프트웨어 개발과 컴퓨터 과학의 핵심 과제 중 하나입니다. 효율적인 알고리즘은 동일한 문제를 해결하더라도 더 적은 시간과 더 적은 메모리를 사용해 실행됩니다. 이때 알고리즘의 성능을 측정하는 두 가지 주요 척도는 다음과 같습니다.시간복잡도(Time Complexity): 알고리즘이 실행되는 데 걸리는 시간의 척도.공간복잡도(Space Complexity): 알고리즘이 실행되는 동안 필요한 메모리의 양.둘 다 중요한 개념이지만, 일반적으로 알고리즘 분석에서는 시간복잡도가 더 강조됩니다. 이는 사용자가 느끼는 프로그램의 응답 속도에 직접적인 영향을 미치기 때문입니다. 시간복잡도를 고려한다는 것은, "입력값의 크기가 변화할 때, 알고리즘의 실행 시간이 얼마나 빠르게 증가하는지.. 2024. 12. 11.