728x90 전체 글303 1주차 프로그래밍 언어 이해하기 [코드잇 부스트 백엔드 스터디] 1. 프로그래밍 언어 살펴보기 # 프로그래밍 언어란? 컴퓨터 → 일을 대신 해주는 기계프로그램 → 컴퓨터가 어떤 일을 해야할지 알려주는 설명서프로그래밍 언어 → 설명서를 쓰기 위해 사용하는 언어 2. 프로그래밍 언어를 분류하는 두 가지 기준 # 프로그래밍 언어 프로그래밍 기본 개념 → 자료형, 변수, 함수, 파라미터코드마다 생김새가 다르다용도, 상황, 프로젝트 규모에 따라서 더 유용하고 적합한 언어가 있다 # 프로그래밍 언어 퀴즈 정리 모든 프로그래밍 언어의 사용법이 모두 동일한 건 아니다.대체로 비슷한 개념들이 각 프로그래밍 언어에 녹아 있지만, 그 개념을 사용하는 방식과 코드의 문법은 달라질 수 있다 # 객체 지향 프로그래밍 객체 지향 프로그래밍 키워드 5가지클래스 + 인스턴스(객체)추상화.. 2024. 5. 8. 1주차 프로그래밍 시작하기 in JavaScript [코드잇 부스트 백엔드 스터디] 1. 자바스크립트 첫 걸음 01. 자바스크립트 소개 • 자바스크립트란 웹사이트를 만들고 싶다면 반드시 배워야 하는 프로그래밍 언어• 처음 등장 했을 당시엔 인기가 없었으나 2015년 이후 큰 발전을 함• 웹 개발 뿐만 아니라 모바일 앱이나 블록체인 등 다양한 범위에서 범용적으로 사용됨 언어를 학습할 때 하는 실수 → 단순히 문법만을 공부하는 것 💡프로그래밍의 원리에 초점을 두는 것이 좋다☑️프로그래밍의 기본 개념을 먼저 이해하고 이것을 바탕으로 언어의 문법들을 활용하는 학습을 할 것 02. 첫 번째 자바스크립트 코드 console.log()• 괄호안의 메시지를 콘솔창에 출력하는 명령어다.• 가장 대표적인 디버깅 방법으로 쉽게 말해, 자바스크립트가 출력을 하도록 도와주는 기능이다. 2. 프로그래밍.. 2024. 5. 8. 1주차 프로그래밍 프리뷰 [코드잇 부스트 백엔드 스터디] 1. 업무 자동화 01. 모든 연락처에 이메일 보내기 파이썬으로 개인 메일을 보낼 수 있다주소록 내보내기 csv 파일 다운로드csv 파일을 파이썬으로 갖고 와서 데이터 확인코드 작성import pandas as pd import yagmail from time import sleep contacts_df = pd.read_csv('./contacts.csv')yag=yagmail.SMTP{ user="주소작성" password="비밀번호작성"}for index, contact in contacts_df.iterrows(): name= contact['Given Nmae'] email = contact['E-mail 1 - Value'] subject = f'{name}님 .. 2024. 5. 8. 1주차 프로그래밍 오버뷰 [코드잇 부스트 백엔드 스터디] 코드잇 부스트 백엔드 파트 스터디 내용 정리 5/2 1. 프로그래밍 혁명 01. 코딩이란 뭘까? 💡코딩→ 컴퓨터에게 어떤 동작을 시키기 위해 명령을 내리는 것 • 컴퓨터는 0과 1만 이해할 수 있기 때문에 사람의 언어로 이야기하면 이해하지 못함• 코딩을 작성하면 0과 1로 번역되어 컴퓨터가 이해할 수 있게 됨 코딩으로 할 수 있는 것• 사람이 하기 힘든 복잡한 계산• 매일 반복적으로 해야 하는 일• 컴퓨터 안에서 이루어질 수 있는 것 (게임, 채팅, 온라인 쇼핑 등) 우리가 사용할 수 있도록 코딩으로 만든 것 → 💡소프트웨어우리가 손으로 만질 수 있는 컴퓨터 → 하드웨어 02. 코딩이 바꾸는 세상 인공지능, 클라우드 , 메타버스 → 💡소프트웨어 기술개발자 수요가 폭발적으로 성장코딩 성장 .. 2024. 5. 8. [백준] 10789번 세로읽기 c++ 입력총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’ 중 하나이다. 각 줄의 시작과 마지막에 빈칸은 없다.출력영석이가 세로로 읽은 순서대로 글자들을 출력한다. 이때, 글자들을 공백 없이 연속해서 출력한다. 풀이방법 0. 문자열을선언한다 (string으로), 현재 총 다섯줄이 입력되기 때문에 string arr[5]를 선언한다. 1. for 반복문을 사용해서 문자열을 입력받는다. 2. 세로로 읽은 순서대로 글자들을 출력하려면 열을 고정한 다음 이중 for문으로 행을 증가시킨다. 3. 입력되지 않은 글자는 출력하지 않으려면 행의 길이가.. 2024. 4. 13. 백준 2908번 상수 C++ 풀이과정 0. A,B 문자열 선언1. A,B의 숫자를 거꾸로 뒤집는다 -> reverse함수 사용2. 거꾸로 뒤집은 A,B를 비교하여 큰 값을 출력한다. -> string을 int로 변환 stoi 함수 사용 STL을 활용해서 문제풀이를 진행했다 코드 #include #include #include using namespace std; int main(){ string A; string B; cin>>A;cin>>B; reverse(A.begin(),A.end()); reverse(B.begin(),B.end()); int num1=stoi(A); int num2=stoi(B); if(num1>num2){ cout 2024. 4. 8. 백준 1152번 단어의 개수 C++ 풀이과정 0. 문자열과 단어를 셀 cnt 변수를 선언한다.1. 공백이 포함된 문자열을 받기 위해 getline함수를 사용한다. 2. 반복문을 사용해서 공백이 나올 때마다 cnt 변수를 1 증가시킨다.3. 조건에 나온 '문자열은 공백으로 시작하거나 끝날 수 있다'라는 점을 고려하여 앞 뒤 공백문자가 나오면,cnt 변수를 1 감소시킨다. 💡중요포인트 getline 함수란? getline(istream& is, string str);getline(istream& is, string str, char dlim); getline() 함수는 string 타입의 변수에 문자열을 입력 받는다. getline(cin, str)과 같이 사용되며, cin으로부터 입력을 받아 변수 str에 저장한다. string.. 2024. 4. 8. [백준] 10809번 알파벳 찾기 C++ 문제풀이 두가지 방법으로 풀이하였다. 1. find 함수를 사용해서 푸는 방법2. find 함수를 사용하지 않고 푸는 방법 find 함수란? 문자열에서 문자가 최초로 등장한 인덱스 번호를 반환하는 함수 s.find(i) -> 문자열 s에서 문자 i가 최초로 등장하는 인덱스 번호를 반환 코드 #include #include using namespace std;int main(){ string s; cin >> s; int i, j; string alphabet = "abcdefghijklmnopqrstuvwxyz"; //알파벳 배열 생성 for (i=0; i1. find 함수를 사용하지 않은 코드 #include #include using namesp.. 2024. 4. 4. [백준] 11720번 숫자의 합 C++ 문제풀이 0.N개의 숫자 개수 선언, 문자열 선언, 합계 변수 선언1.반복문을 사용하여서 합계를 구함. 이때 문자데이터를 int형으로 변환하는 것이 중요 2.합계 출력 문자를 정수로 변환하는 법 *int num=char-'0'; 아스키코드 값을 보고싶다면 (int)형을 붙여 형변환 코드 # include # include using namespace std; int main(){ int N; cin>>N;//숫자 개수 string s; int sum=0; cin>>s; for(int i=0;i 2024. 4. 4. [백준] 9086 문자열 C++ 문제풀이 0. 테스트케이스 변수 선언 , 문자열 선언1. 테스트 케이스 입력2. 테스트 케이스 개수 만큼 반복문 실행하도록 설정 (이때 반복문은 문자열을 입력받고, 글자를 출력하는 로직)3. 반복문에 문자열 길이 변수 선언 및 초기화4. 반복문을 사용하여 문자열 길이 출력5. 문자열 첫글자와 끝글자 출력 (끝글자는 문자열 길이 활용) # include using namespace std; int main(){ int T; char s[1001]; cin>>T;//테스트 케이스 입력 while(T--){ cin>>s; int len=0; for(int i=0;s[i]!='\0';i++)len++; cout 2024. 4. 4. [백준] 2743 단어 길이 재기 C++ 문제풀이 0. 입력받을 문자열 선언, 단어 길이 변수 선언1. 단어를 입력받는다.2. 단어 길이를 구하는 반복문을 작성한다 -> 문자열의 끝은 \0인 것을 이용!3. 단어 길이를 출력한다. 코드 # include using namespace std; int main(){ char s[1001]; // 0~1000까지 int len=0; cin>>s;//문자열 입력 for(int i=0;s[i]!='\0';i++)len++; cout 2024. 4. 4. [백준] 27866 문자와 문자열 C++ 문제풀이 0. 초기 문자열과 정수 i를 선언한다 (이때 문자열 범위 중요) 1. 단어와 i를 입력받는다.2. 문자열에서 i-1번째를 출력한다. 단어 길이가 최대 1000이기 때문에 문자열은 char[1001]로 선언하여 0~1000 범위로 설정해준다. # include using namespace std; int main(){ char s[1001]; // 0~1000까지 int i=0; cin>>s;//문자열 입력 cin>>i;//i번째 숫자 입력 cout 2024. 4. 4. [백준] 3052 나머지 C++ 문제풀이 0. 초기 값 설정 ( 배열 모든 값 0으로 설정)1. 수 10개를 입력받는 반복문 작성2. 나머지값이 나오면 해당값의 인덱스를 증가시킴 (나머지가 나오지않은 값은 그대로 0) 3. 반복문을 돌려서 배열이 0이 아닐 때 카운트를 증가시킴 (서로 다른 나머지 개수 카운트) 코드 # include using namespace std; int main(){ int arr[43]={0}; int x, cnt; for(int i=0;i>x; arr[x%42]++; //나머지 인덱스 증가 } cnt=0; for(int i=0;i 중요 포인트배열 초기화 하는 것 2024. 4. 4. Springboot [5] : 데이터베이스 개념 * 책 스프링부트 3 백엔드 개발자 되기 자바편을 공부하면서 정리한 내용입니다 데이터베이스란 ☑️데이터베이스란? 데이터를 효율적으로 보관하고 꺼내볼 수 있는 곳 데이터베이스 관리자 데이터베이스를 관리하기 위한 소프트웨어 DBMS MySQL, 오라클관리 특징에 따라서 관계형,객체-관계형, 도큐먼트형, 비관계형 등으로 분류 가장 많이 사용하는 DBMS는 관계형 관계형 DBMS RDBMS (Relational DBMS) 테이블 형태로 이루어진 데이터 저장소 H2 자바로 작성되어 있는 RDBMS스프링부트가 지원하는 인메모리 관계형 데이터베이스H2는 데이터를 다른 공간에 따로 보관하는 것이 아니라 애플리케이션 자체 내부에 데이터를 저장함 개발 시 테스트 용도로 많이 사용함 (실제 서비스에선 MySQL과 같은 제품.. 2024. 3. 15. [백준] 1546번 평균 문제세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. 입력첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.출력첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또는 .. 2024. 3. 5. Springboot [4] : 테스트 * 책 스프링부트 3 백엔드 개발자 되기 자바편을 공부하면서 정리한 내용입니다 스프링부트 3와 테스트 given-when-then 패턴 given: 테스트 실행을 준비하는 단계when: 테스트를 진행하는 단계then: 테스트 결과를 검증하는 단계 JUnit: 자바 프로그래밍 언어용 단위 테스트 프레임워크 AssertJ: 검증문인 어설션을 작성하는 데 사용되는 라이브러리 Hamcrest: 표현식을 이해하기 쉽게 만드는 데 사용되는 Matcher 라이브러리 JUnit이란? ☑️JUnit이란? 자바 언어를 위한 단위 테스트 프레임워크테스트 방식을 구분할 수 잇는 애너테이션을 제공@Test 애너테이션으로 메서드를 호출할 때마다 새 인스턴스를 생성, 독립 테스트 가능예상 결과를 검증하는 어설션 메서드 제공사용 방.. 2024. 3. 5. Springboot [3] : 스프링부트 구조 이해하기 * 책 스프링부트 3 백엔드 개발자 되기 자바편을 공부하면서 정리한 내용입니다 스프링부트는 각 계층이 양 옆의 계층과 통신하는 구조를 따른다 . 스프링부트 구조 프레젠테이션 계층(컨트롤러) HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 역할을 한다. 컨트롤러가 이 역할을 한다. (컨트롤러는 스프링 부트 내에 여러 개가 있을 수 있다) 비즈니스 계층(서비스)비즈니스 로직이란 서비스를 만들기 위한 로직을 말한다.프로세스를 구현하기 위한 로직 퍼시스턴스 계층(리포지토리) 데이터베이스 관련 로직을 처리. DAO 객체를 사용할 수도 있다. 계층은 개념의 영역이고, 컨트롤러 서비스 리포지토리는 실제 구현을 위한 영역이다. 스프링부트 프로젝트 디렉터리 구성 main실제 코드르 작성하는.. 2024. 3. 4. Springboot [2] : 스프링부트 코드 이해하기 * 책 스프링부트 3 백엔드 개발자 되기 자바편을 공부하면서 정리한 내용입니다 @SpringBootApplication import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class SpringBootDeveloperApplication { public static void main(String[] args) { SpringApplication.run(SpringBootDeveloperApplication.class, args); }} 이 클래스는 자바의 main()메서드.. 2024. 3. 3. Springboot [1] : 환경설정 및 예제 * 책 스프링부트 3 백엔드 개발자 되기 자바편을 공부하면서 정리한 내용입니다 스프링부트 프로젝트 생성 plugins { id 'java' id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' version '1.1.0'}group = 'me.shinsunyoung'version = '1.0-SNAPSHOT'sourceCompatibility = '17'repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementa.. 2024. 3. 2. [OS] Chapter 6 : Process Synchronization Background 공유 데이터에 대한 동시 접근은 데이터 불일치를 일으킬 수 있다 -> 데이터를 수정하는 과정에서 문제가 된다. 데이터 일관성을 유지하기 위해서는 협력 프로세스(데이터를 공유하고 있는 프로세스)의 순차적 실행을 보장하는 메커니즘이 필요하다. Producer-Consumer 문제를 가정한다. 정수 count는 버퍼 안에 있는 항목의 수를 추적처음에 count는 0으로 설정생산자(Producer)에 의해 증가소비자(Consumer)에 의해 감소 Code for Producer while (true) { /* produce an item and put in nextProduced */while (count == BUFFER_SIZE) ; // do nothingbuffer[in] = n.. 2023. 10. 28. [NetWork] 네트워크 정리 (3) 트렌스포트 레이어 정리 전송 계층 서비스 뒤에 있는 원리를 이해하기.• 다중화, 역다중화 ( multiplexing, demultiplexing)• 신뢰성 있는 데이터 전송 • 흐름 제어 • 혼잡 제어인터넷 전송 계층 프로토콜에 대해 배운다.• UDP: 연결 없는 전송 • TCP: 연결 지향 신뢰성 있는 전송 • TCP 혼잡 제어 Transport services and protocols서로 다른 호스트에서 실행되는 어플리케이션 프로세스 간의 논리적인 통신을 제공한다. 전송 프로토콜은 끝 시스템에서 다음과 같은 작업을 수행한다:• 송신자: 어플리케이션 프로그램에서 메시지를 보내면 이 메세지를 세그먼트로 나누고 가 다음 네트워크 계층에 전달한다. • 수신자: 세그먼트를 메시지로 재조립하고 어플리케이션.. 2023. 10. 28. 이전 1 ··· 10 11 12 13 14 15 다음 728x90