분류 전체보기 284

[AWS]클라우드와 온프레미스 - 클라우드 용어 알아두기 (2)

가상화 가상 서버는 물리 서버의 CPU나 메모리 같은 컴퓨터 자원을 일부 독점해 물리적으로 독립된 서버와 같이 동작 물리 서버를 임대하는 경우 - 사용자의 요구에 맞춰 물리 서버를 한 대씩 대여하다 보면 서버 대수가 부족할 수 있다. 가상 서버를 임대하는 경우 - 1개의 물리 서버 내에서 여러개의 가상 서버를 구축해 대여함으로써 대량의 서버를 제공할 수 있다. 하드 디스크나 SSD와 같은 스토리지, 네트워크 장비 등도 가상화 기술로 1개의 기기를 여러 기기처럼 동작시킬 수 있음

[AWS]클라우드와 온프레미스 - 클라우드 용어 알아두기 (1)

온프레미스란 on-premise 사용자가 관리하는 시설 내에 서버 등의 기기를 설치해 운용하는 환경 데이터 센터 물리적인 준비 + 이용하기 위한 설정 + @ 클라우드란 클라우드 컴퓨팅 클라우드 사업자의 자산을 서비스로 제공 물리적인 준비, 설정, 설치, 관리 등 신경쓸 필요 없음. 서비스 제공자가 함 비즈니스 요구 온프레미스 퍼블릭 클라우드 데이터 센터 단일 테넌트(컴플라이언스용) O X 매우 안전한 데이터 암호화 O O 맞춤형 하드웨어, 특수 목적의 시스템 O X 용량을 손쉽게 확장 및 축소 가능 X O 인프라에 대규모의 정기적인 투자 필요 O X 종량제 결제, 사용랑 기반 가격 책정 X O 완전한 데이터 가시성 및 관리 권한 O X 내장형의 자동화된 데이터 백업 및 복구 X O 제로에 가까운 중단 시..

[AWS]AWS란

대표적인 클라우드 서비스, Amazon Web Services 200개 이상의 서비스 컴퓨터(서버)나 데이터베이스와 같은 기능을 인터넷을 통해 이용할 수 있게 해주는 서비스를 클라우드 서비스라고 함 컴퓨팅, 데이터베이스, 스토리지, 모바일, IoT, 기계 학습 등의 다양한 서비스 점유율이 높은 AWS 누구나 사용할 수 있는 AWS 같은 클라우드를 개방형 클라우드(Public Cloud)라 함 전세계 클라우드 시장에서 점유율이 제일 높음 AWS 말고 GCP, Azure 등이 있음.대표적인 클라우드 서비스, Amazon Web Services

[MySQL]쿼리(DML 중 SELECT문) 실행 순서

DML 중 SELECT 쿼리의 실행 순서에 대해 알아볼거임. 순서만 띡 써놓으면 정 없으니까 간단한 설명도 같이 써볼 예정 ! SELECT 쿼리의 실행 순서 SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY - LIMIT, OFFSET 얘네들이 다 필수로 SELECT 쿼리에 포함되어 있어야하는 것은 아님 ! SELECT이랑 FROM 말고는 다 옵셔널함 ! SELECT SELECT 절에서 원하는 열(컬럼)을 지정함. 이 단계에서는 데이터베이스에서 어떤 열을 반환할지 결정. SELECT column1, column2 FROM my_table; FROM FROM 절에서 데이터를 조회할 테이블을 지정. SELECT column1, column2 FROM my_tabl..

Database/MySQL 2023.09.04

Jira - Jira란?

들어가며 지금의 회사에 입사하기 전에도 Jira(지라)라는 툴은 사용해봤음 뭐 어따 쓰는건지도 모르고 그냥 뭐 실제로 회사에 입사를 하게되면 협업할 때에 지라같은 툴을 쓴다~ 라고 하니까 그냥 썼던 것 같음 지금 생각해보면 그때는 그냥 지라를 체크리스트나 To-do 리스트의 용도로만 썼었던 것 같다. 음,, 알림장 정도? ㅋㅋㅋㅋㅋㅋㅋ 다른 사람들과 프로젝트를 할 때에도 그냥 대충 오늘의 할 일을 적고 대충 올리고 대충 티켓을 완료에다가 갖다 놓고 그런,,,, 진짜 말도 안되는 짓을 했음 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 지금 생각해보니까 웃기네 모두가 별로 중요성을 느끼지 못했고, 그냥 노션에 기록하는 거면 다 된 것 마냥 했다. 하지만 입사하고 지라와 같은 협업 툴, 프로젝트 관리, 이슈 트래킹 툴이 얼마나 중요..

[Backend]IntelliJ(인텔리제이) 서버 실행 시, 로그 창 비교

들어가며 인텔리제이(IntelliJ)에서 서버를 실행하면 서버와 관련된 정보 및 로그를 보여주는 창인 "Services" 창이 있음. 이 창에서는 실행시킨 서버에 대한 로그를 볼 수 있는데, 거기엔 "Server" 탭과 "Tomcat Localhost Log" 탭, 그리고 "Tomcat Catalina Log" 탭이 있음. 처음에는 그냥 서버 실행하면 먼저 활성화되는 Server 탭의 로그만 봤고, 거기에 있는 로그들이 전부인 줄 알았음. 누가 이걸 볼지는 모르겠지만, 나와 같은 실수를 최대한 빨리 고치기를 바라며 이 글을 쓰게 됐음 ! 서버 실행시, 로그 창 비교 Server 탭 얘는 현재 프로젝트에서 설정한 서버 구성과 관련된 정보를 보여줌. 서버의 이름, 상태(실행 중인지 중지된 상태인지), 호스트..

Spring Batch - (4)배치 작업 개발

배치 작업 개발 스프링 배치를 사용하여 배치 작업을 개발하기 위해서는 Job 설정과 구성, Step 정의와 처리 로직 구현, 그리고 Reader, Processor, Writer의 역할과 사용 방법을 이해해야 한다!! 1. Job 설정과 구성 Job은 스프링 배치의 최상위 개념으로, 배치 작업의 실행 단위. Job은 JobBuilderFactory를 사용하여 생성하고, JobBuilder를 통해 Job의 속성을 설정할 수 있음. JobBuilder를 사용하여 Job의 이름, 실행 시점, 파라미터 등을 설정하면 됨! 2. Step 정의와 처리 로직 구현 Step은 Job을 구성하는 작업 단위. 각 Step은 Reader, Processor, Writer 등의 구성 요소를 포함하여 작업의 세부 처리를 정의한..

Spring Batch - (3)스프링 배치 아키텍처

Spring Batch Architecture 스프링 배치는 Job, Step, Tasklet이라는 개념을 기반으로 한 아키텍처를 제공한다. 이 아키텍처를 이해하고 활용함으로써 배치 작업을 효율적으로 처리할 수 있다! 1. Job, Step, Tasklet 개념 - Job: 스프링 배치의 최상위 개념으로, 하나 이상의 Step으로 구성된다. Job은 배치 작업의 실행 단위를 나타냄. 개발자는 Job을 정의하고 구성하여 작업의 흐름을 제어할 수 있다. - Step: Job을 구성하는 작업 단위. 각 Step은 특정한 작업을 수행하는데 필요한 Reader, Processor, Writer 등의 구성 요소를 포함할 수 있음. Step은 순차적으로 실행되며, 필요에 따라 병렬로 실행될 수도 있다. - Taskl..

Spring Batch - (2)Spring Batch의 필요성과 장점

그냥 Spring이나 java를 사용하면 대용량 데이터 처리를 못해? chunk의 개념을 그냥 java로 구현해서 사용하면 되는거아니야? 왜 굳이 Spring Batch를 써야돼? 이 글을 보는 사람들은 다들 경험해봤듯이, Spring이나 Java를 사용하여 데이터 처리를 할 수는 있다. 그리고 대용량 데이터 처리라고 해봐야 그냥 데이터 처리를 많이 하면 되는거 아닌가? 또, Spring Batch하면 빼놓을 수 없는 "Chunk" 개념을 직접 Java로 구현하여 사용할 수도 있다. 그렇다면 왜 굳이 Spring Batch를 사용해야 할까??? Spring Batch를 사용하는 이유 1. 표준화된 아키텍처와 모범 사례 Spring Batch는 대규모 배치 처리에 필요한 아키텍처와 모범 사례를 제공함. 이..

Spring Batch - (1)스프링 배치란?

최근에 회사에서 난생 처음으로 배치 개발을 해보게 되어서 공부하게 된 내용 + 공부할 내용 + @를 쓸 예정이다 ㅎㅎㅎ 스프링 배치라는 것이 있다는 것은 알고 있었는데(그냥 대용량 데이터 처리를 할 때 쓴다는 것만 알고 있었음) 내가 직접 해보게 될 줄은 몰랐당 해보라고 했을 때는 좀 무서웠지만 막상 해보니 재미도 있고 원래 하던 개발이랑은 좀 색다른 맛이 있어서 아주 좋은 경험이였음! 뭔가 촤라라락 척척척 촤촤촥 되는 느낌? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 해본 사람이라면 알 수도 모를 수도 있는 말이지 않을까 싶네여 Spring Batch란? 스프링 배치(Spring Batch)는 대용량의 데이터를 처리하고, 반복적으로 수행되는 일괄 처리 작업을 지원하는 오픈 소스 프레임워크임. 스프링 배치는 일괄 처리 작..

SVN - (4)개발을 혼자서 할 수 없는 이유

물론 개발은 혼자서 할 수 있다. 하지만 어렵다. 1인이 서비스를 만들 수 있다. 하지만 그 서비스는 본인만 사용하는 서비스인가? 아니잖아 결국 서비스가 잘 되고 덩치가 커지면 많은 사람들이 필요해진다. 내가 생각하는 개발을 혼자서 할 수 없는 이유는 다음과 같다. 개발을 혼자서 할 수 없는 이유 1. 복잡성과 다양성 현대 소프트웨어 개발은 매우 복잡하고 다양한 기술과 도구들이 사용된다. 배포만 봐도 요즘은 기본적으로 무중단 배포를 선호한다. 그렇다면 무중단 배포를 위한 로드밸런서 뭐 Nginx. 가상화, 컨테이너 기술에 Docker랑 Kubernetes. CI/CD를 위한 Jenkins나 GitHub Action. 그리고 모니터링을 위한 도구(이건 안써봐서 뭐가 있는지 모르겠음요). 당장 생각나는 것만..

SVN - (3)SVN 사용법

SVN은 다른 VCS(버전 관리 시스템)처럼 GUI와 CLI 모두로 사용이 가능함. 어차피 GUI로 쓰나 CLI로 쓰나 겹치는, 알아야 하는 사용법이 있음. 둘 다 간단하게 알아보고, 중요한 사용법들을 알아보는 방향으로 갈게여 GUI로 사용하는 방법 SVN의 GUI 툴은 여러가지가 있다고 하지만, 지금 간단하게 알아볼 툴은 TortoiseSVN임. 입사 후 막 나는 이클립스에서 SVN을 사용하고 있었는데 이걸 사용하는 사람도 있더라구? 근데 첨에는 그냥 window XP 시절 그냥 파일 탐색기 같이 생겨서 그게 SVN GUI 툴인지 몰랐음 ㅋㅋㅋㅋㅋ 첫인상이 좀 구려보여서 아직 사용은 안해봤음 ㅎㅎ 그리고 내가 알기론 Tortoise가 육지거북이란 뜻인가 그럴거임. 그래서 TortoiseSVN를 보면 귀..

SVN - (2)SVN의 역사

CVS란 CVS(Concurrent Versions System)는 1980년대 후반부터 사용되어온 VCS 중 하나였고, CVS는 클라이언트-서버 구조로 이루어져 있음. 클라이언트는 서버로부터 완전한 복사본을 얻을 수 있음. 그러나 CVS는 분산형 버전 관리 시스템이 아닌 중앙 집중형 버전 관리 시스템이기 때문에 대규모 프로젝트에서는 한계가 있었음. SVN의 특징 SVN은 위에서 간단하게 설명한 CVS의 한계를 극복하고자 만들어졌다고 함. SVN(Subversion)은 2000년대 초에 개발되어, CVS를 대체하기 위해 만들어진 VCS임. SVN은 CVS와 비슷한 기능을 제공하면서도, 복잡한 코드 변경을 처리할 수 있는 새로운 방식을 도입하여 대규모 프로젝트에서 더욱 효과적으로 사용될 수 있었음. 방금 ..

SVN - (1)SVN이란?

들어가기 전에 입사를 하고 SVN이란 친구를 처음 알게 되었음. 얘기는 들어봤는데 "이걸 설마 내가 쓸 일은 없겠지,,," 라고 생각해왔던 것 같다,,, 뭐든지 언제나 갑자기 찾아오는 법! 회사에서는 배포하고 하느라 몇번 어깨너머로 보고 똑같이 사용은 해보다가 최근에 SVN에 대해 찾아보고 알아보게 되어서 정리하는 겸해서 글을 올리게 되었다 ! SVN 시리즈에 대해서 일단 아는대로 정리해서 써나갈 생각임 SVN이란? SVN은 Subversion의 약자임. 이 SVN은 버전 관리 시스템(VCS, Version Control System) 중 하나임. VCS는 발자나 프로젝트 팀이 파일 및 코드의 변경 내용을 추적하고 관리할 수 있도록 도와주는 소프트웨어 도구임. SVN은 Apache Software Fou..

[Python]람다(lambda)를 사용하여 정렬하기

람다(lambda)란? 람다란, 프로그래밍 언어에서 사용되는 개념으로 익명의 함수, 이름 없는 함수를 지칭한다 ! 람다는 이번 글에서 다룰 "정렬"말고도 다른 많은 방법으로 활용할 수 있다고 한다. 다른 많은 사용법은 다음번에 정리해보겠다 ! 람다(lambda)를 활용한 정렬 예제 예제 1 dataArr = ['aewde', 'ab', 'lpcd', 'a', 'sbc'] # 1번 dataArr.sort() # 2번 dataArr.sort(key = lambda x : len(x)) 1번의 경우에는 ['a', 'ab', 'aewde', 'lpcd', 'sbc']로 정렬이 됨. 2번의 경우에는 ['a', 'ab', 'sbc', 'lpcd', 'aewde']로 정렬이 됨 ! 💡 눈치빠른 사람은 len(x)을 ..

언어/Python 2023.04.19

[프로그래머스]진료과별 총 예약 횟수 출력하기 - MySQL

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132202 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 2 문제 문제만 잘 읽으면 쉽게 풀 수 있을 듯 ? 💡 GROUP BY 절 GROUP BY 쓸 때는 집계함수랑 같이 쓰는 경우가 많다고 했었다 분명히??? 이거 함 보고 오셈 https://seokmimmmmmmmm.tistory.com/225 [MySQL]GROUP BY절과 집계 함수 집계 함수란? https://seokmimmmmmmmm.tistory.com/224 [M..

[프로그래머스]부족한 금액 계산하기 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 List Comprehension 활용 List Comprehension을 사용해서 간단하게 필요한 List를 생성해서 계산해주었다. 💡sum() List Comprehension과 sum()을 활용하여 코드의 길이를 줄였음 ! List Comprehension이 궁금하다면? https://seokmimmmmmmmm.tistory.com/244 [Python]Li..

[프로그래머스]같은 숫자는 싫어 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 문제를 읽다보면 자연스럽게 스택을 생각하게 되는데, 파이썬에서는 List로 많은 자료구조를 커버할 수 있는 듯 ! 💡 arr.append() 파이썬에는 자바와 다르게 Array와 List의 구분이 있지 않다. 파이썬의 List에서는 append() 함수를 이용해서 List의 끝에 요소를 추가할 수 있다 ! 이 문제에서는 List를 Stack으로 사용하려고 함. Sta..

[프로그래머스]수박수박수박수박수박수? - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 문자열 * n 파이썬에서는 문자열도 곱하기 연산을 할 수 있다는 걸 활용하자 ! 💡홀수 짝수 나누기 홀수와 짝수의 경우를 나눠서 풀이해도 되지만, 최대한 코드를 짧게 짜고 싶어서 슬라이싱을 이용하였다. "수박"을 n만큼 곱해도 되지만 쓸데없는 연산을 줄이기 위해서 (int)(n/2)+1을 곱하였다. 코드 def solution(n): return ("수박" * (..

[프로그래머스]서울에서 김서방 찾기 - Python

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 💡 s.index() 괄호 안의 인자값이 문자열 s 안에 몇번째 인덱스에 있는지 반환하는 함수 값이 없으면 -1을 반환함 ! 💡str() 괄호 안의 값을 문자열로 만들어주는 함수 코드 def solution(seoul): return "김서방은 " + str(seoul.index("Kim")) + "에 있다"