분류 전체보기209 [우아한테크코스] 프리코스 1주차 : 온보딩 (onboarding) 드디어 프리코스가 시작되었다. 선발 과정에 대해서 알아보자. 📌 우아한 테크코스 5기 백엔드 선발 과정 지원서 작성: 10월 17일 ~ 10월 24일 프리코스: 10월 26일 ~ 11월 22일 1차 합격 발표: 12월 14일 2차 코딩테스트: 12월 17일 최종 합격 발표: 12월 28일 다음과 같이 이번 모집은 이전 기수와 달라진 점은 코딩 테스트 없이 서류 접수한 전원이 프리코스에 참여하는 것이다. 프리코스는 강의 기반 교육이 아닌 주어진 미션(과제 형식)을 해결하기 위해서 스스로 필요한 내용을 학습하고 터득해서 적용하는 것이다. 과정 자체에도 '성장'할 수 있고 앞으로 우테코의 교육과정을 맛볼 수 있는 기회이다. 내가 지향하는 프로그래밍 공부 방식과 너무 잘 맞아서 감동받을 정도였다. [1주 차] .. 2022. 10. 28. [알고리즘] 최단 경로 알고리즘 (다익스트라, 플로이드 워셜) 🧩 최단 경로 알고리즘 최단 경로 알고리즘: 가장 짧은 경로를 찾는 알고리즘 문제 상황 한 지점에서 다른 한 지점까지의 최단 경로 한 지점에서 다른 모든 지점까지의 최단 경로 모든 지점에서 다른 모든 지점까지의 최단 경로 [그래프] 노드(각 지점) / 간선(지점 간 연결된 도로) 다익스트라 최단 경로 알고리즘 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로를 계산 음의 간선이 없을 때 정상적으로 동작 그리디 알고리즘 매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정 반복 ✔️ 동작 과정 출발 노드 설정 최단 거리 테이블 초기화 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드 선택 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단 거리 테이블 갱신 위 과정에서 3번, 4번 .. 2022. 10. 25. [IntelliJ] project마다 JDK 버전 관리하기 나는 기존에 JDK 8을 사용하고 있었고 스프링 강의에서는 JDK 11을 사용한다. 엇.. 그러면 IntelliJ 버전은 어떻게 해야할까. Project A Project: Gradle Project Language: Java Java: 11 Project B Project: Gradle Project Language: Java Java: 8 Project Setting (CTRL+ALT+S, CMD+,) ✔️ Gradle JVM 변경 Build, Execution, Deployment > Build Tools > Gradle 여기서 Gradle JVM을 변경한다. 내가 원하는 JDK 버전을 추가해줬다. ✔️ Project bytecode version 변경 Build, Execution, Deploym.. 2022. 10. 25. [Java] 예외처리 예외처리 (exception handling) 프로그램 오류 컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러 런타임 에러(runtime error): 실행할 때 발생 하는 에러 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 미약한 오류 -> 예외는 처리하자!! 논리적 에러(logical error): 작성 의도와 다르게 동작 예외 처리 정의: 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적: 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 방법: try-catch문, 예외 선언하기 ✔️ Exception Exception 클래스들: 사용자.. 2022. 10. 23. 내가 그린 그림 [ 삶의 방향을 찾아가며 ] [ 일단 달리고 있는데 잠시 멈춰서 생각할 시간이 필요해 ] 나는 작년 12월 말 종강 후에 1월부터 7월까지 엘리스 부트 캠프를 수료했고 8월까지 계속 여러 스터디를 진행하고 있었다. 교육과 스터디만 진행하다 보니 대외활동 경험이 부족했고 공모전이나 해커톤을 하고 싶다는 생각이 들었다. (코로나 때문에 오프라인 행사가 없었기도 했고) 마침..! 백엔드 코치님의 소개로 기획자, 디자이너, 프론트엔드 개발자, 백엔드 개발자 30명을 뽑는 구름톤(해커톤)에 합격하여 참여했다. (작년보다 성장했잖아? 뿌듯해~) 종강 후 쉴 틈 없이 달려오다 보니 스스로 생각해보고 고민할 시간을 가지지 못하고 뛰고 있었다. '개발'이라는 길을 시작할 때 나는 앞으로의 길을 어떻게 계획하고 설계했더라.. 2022. 10. 22. [MySQL 8.0] 초기 세팅 이번에 MySQL 세팅을 다시 하면서 다시 검색하는 번거로움을 줄이고자 정리해본다! 1. 서버 접속 $ mysql -u root -p 이때 -u 옵션은 user를 뜻하고 -p 옵션은 password를 뜻한다. 이때 접속하고자 하는 사용자를 선택한다. 2. 사용자 추가 CREATE USER 'user-name'@'localhost' IDENTIFIED BY 'user-password' FLUSH PRIVILEGES; 이렇게 수정을 해주고 FLUSH PRIVILEGES; 명령어를 사용하게 되는데 FLUSH는 버퍼 내용을 지우고 버퍼링된 데이터를 파일에 저장해준다. 그래서 위에서 변경한 내용이 적용시켜 주는 명령어이다. 3. 유저 정보 확인하기 SELECT USER, HOST FROM mysql.user; 3.. 2022. 10. 19. 잃고나니 보이는 것들... 랜섬웨어 평화롭던 어느날.. 이전 프로젝트에서 인공지능 파트 서버를 실행시켰는데 엥 디비가 왜 없지? 🤔 급하게 mysql 서버에 접속해봤다. 🤔 골드? 아 아니네. 갓? 래...랜..서엄??????? 원래 내 사랑스러운 테이블이 없더라.. 내 자식들은 사라지고 남의 자식이 이사와 있네? 누구냐 넌 그래 내 데이터 훔쳐가고 너 뭐 넣어놨니? 정성스럽게도 적어놨다... 그래... 데이터 빼앗긴 기념으로 랜섬웨어가 무엇인지 공부해보자! ^_^ 공부할 기회다! 랜섬웨어 몸값을 의미하는 랜섬(Ransom)과 소프트웨어(Software)의 합성어로 시스템을 잠그거나 데이터를 암호화하고 잠금 해제나 복호화를 빌미로 금전을 요구하는 악성프로그램이다. 위에서는 데이터를 빌미로 비트코인을 달라고 했다; 이때, 랜섬웨어 공격수법은.. 2022. 10. 18. [Java] 알아두면 좋을 것! (JDK, JRE, JVM, build, run) 자바 기본 자바와 스프링 공부를 함께 하고 있는데 기본 원리를 놓치고 공부하고 있다는 생각을 했다. 그래서 오늘은 기본적인 Java 원리를 정리하고 이해해보자. 1. JAVA 언어를 컴퓨터가 이해하는 과정 1) 코드 작성 .java public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World"); } } 기계는 Java Source code를 이해할 수 없다. 2) 컴파일러(Compiler)가 컴파일(Compile) 함. 0과 1의 코드로 바꿔줌. 3) 바이트 코드 (바이너리 코드) 컴퓨터가 이해함. [ 정리 ] 컴파일: 인간이 이해하기 쉬운 언어를 기계어로 번역하는 과정 컴파일러: .. 2022. 10. 16. [Java] 다형성(polymorphism), 추상 클래스, 인터페이스, 내부 클래스 다형성 (polymorphism) 여러 가지 형태를 가질 수 있는 능력 (하나의 객체가 여러개의 자료형 타입을 가질 수 있는 것) 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. 조상: TV, 자손: SmartTV Tv t = new SmartTV(); // OK SmartTv s = new TV(); // 에러 멤버의 개수가 7가진데 5가지만 참조변수로 사용할 수도 있다. ✔️ 참조변수의 형변환 사용할 수 있는 멤버의 개수를 조절하는 것 조상 자손 관계의 참조변수는 서로 형변환 가능하다. 자손타입 -> 조상타입(up-casting) : 형변환 생략가능 조상타입 -> 자손타입(down-casting) : 형변환 생략불가 FireEngine .. 2022. 10. 12. [Java] package와 import, 제어자 패키지 (package) 서로 관련된 클래스의 묶음 클래스의 실제 이름(full name)은 패키지를 포함. (java.lang.String) ✔️ 패키지의 선언 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언 같은 소스 파일의 클래스들은 모두 같은 패키지에 속하게 된다. 패키지 선언이 없으면 이름없는 (unnamed) 패키지에 속하게 된다. package com.codechobo.book; src 아래에서 New -> Package 로 패키지를 생성할 수 있다. 패키지를 생성하면 class를 생성할 수 있다. 다음과 같이 패키지 선언이 자동으로 삽입된다. 패키지 사용 이유 클래스의 분류가 용이하다. (비슷한 것 끼리 묶는다) 패키지가 다르다면 동일한 클래스명을 사용할 수 있다. import문 클래스.. 2022. 10. 11. [Java] 상속 (Inheritance), 오버라이딩, super, super() 상속 (Inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. (코드의 재사용) 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화 블록 제외) 자손의 멤버 개수는 조상보다 적을 수 없다. class Parent { int age; } class Child extends Parent {} : 이때 부모 멤버 1개를 모두 상속받았기 때문에 자식 또한 멤버 1개이다. 자손의 변경은 조상에 영향을 미치지 않는다. 예시 class Point { int x; int y; } class Point3D extends Point { int z; } ✔️ 포함 관계 클래스의 멤버로 참조변수를 선언하는 것 작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만든다. 예시 class Poi.. 2022. 10. 9. [Python] 정규 표현식 (Regular Expressions) 코딩 테스트를 보면서 정규식을 알았다면 간단하게 해결될 수 있는 문제를 푼 적이 꽤 있다. 하지만 너무 어려울 것 같아 미루던 정규식을 스터디를 기회로 조금이라도 공부해보고자 한다. 전부를 알 수는 없기 때문에 이번에는 스터디 문제에서 해결했던 아이디어 위주로 알아보자! 정규 표현식(Regular Expressions): 복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬만의 고유 문법이 아니라 문자열을 처리하는 모든 곳에서 사용 1. 메타 문자 . ^ $ * + ? { } [ ] \ | ( ) 1) 문자 클래스 [ ] "[ ] 사이의 문자들과 매치"라는 의미 [a-zA-Z] : 알파벳 모두 [0-9] : 숫자 2) ^ 이 문자를 헷갈리지 않고 사용해야 된다. [^0-9] : 문자 클래스 안에서는 ^는.. 2022. 10. 3. [CI/CD] GitHub Actions + AWS Elastic Beanstalk를 활용한 자동화 파이프라인 구축 (정성가득♥️) 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스인 AWS Elastic Beanstalk를 만드는 법을 포스팅으로 따로 정리한 적 있다. 👉 [AWS] Elastic Beanstalk(EB) 사용해서 웹 애플리케이션 배포하기 또한 이전에 CI,CD 중 Jenkins와 Circle CI를 공부한 적이 있다. 젠킨스는 아래와 같은 이유로 공부했는데 따로 호스팅을 해야하는 등 서비스 운영을 위한 리소스 비용을 발생하여 부담이 되었다. 무료 사용 방대한 양의 플로그인 다양한 적용사례 및 풍부한 레퍼런스 🍀 그래서 이번에는 최근 현업에서 많이 사용하는 GitHub Actions를 이용하여 CI/CD 파이프라인을 구축하고 AWS Elastic Beanstalk로 배포 및 관리해보겠다. 1. A.. 2022. 10. 2. [SQL/Programmers] GROUP BY 프로그래머스 문제집을 풀며 GROUP BY 절을 마스터해보자. https://school.programmers.co.kr/learn/courses/30/parts/17044 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr GROUP BY 절 FROM 절과 WHERE 절 뒤에 오며, 데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별 통계 정보를 얻을 때 추가로 사용한다. SELECT DISTINCT 칼럼명 ALIAS명 FROM 테이블명 WHERE 조건식 GROUP BY 칼럼/표현식 HAVING 그룹의 조건식; 🔺 GROUP BY에 사용된 컬럼 이외의 컬.. 2022. 9. 29. [Node.js] Nest.js 폴더 구조 설계하기 0. 개요 [ 기존의 구조 ] 보통 express에서는 컨트롤러, 서비스 별로 쭈욱 파일이 모여있다. 아래는 과거에 진행한 프로젝트 구조이다. 프로젝트를 진행하면서 mvp가 많아질수록 컨트롤러와 서비스는 많아졌고 점점 도메인 별로 코드를 찾기 어려워졌다. 이 구조는 서비스가 확장되면 도메인 별로 흩어져 있기 때문에 파일을 찾아서 개발하는 것이 힘들다. 그래서 좀 더 대규모 서비스의 폴더 구조는 어떻게 설계하는지 궁금해졌고, 이번에는 nest에서 최대한 DDD할 수 있는 폴더 구조를 알아보려 한다. ┣ 📂controllers ┃ ┣ 📜bookMarkController.ts ┃ ┣ 📜checklistController.ts ┃ ┣ 📜scheduleController.ts ┃ ┣ 📜subscribeContro.. 2022. 9. 25. 이전 1 2 3 4 5 6 7 8 ··· 14 다음 반응형