분류 전체보기
-
[SSAFY] 싸피 8기 2학기 특화 프로젝트 후기 - 우수상(2등)IT/SSAFY 2023. 4. 15. 23:06
특화 프로젝트 기간은 한창 공채 공고가 많이 올라오고 자소서를 작성하는 기간이다보니, 취업과 병행하여 최대한 효율적으로 프로젝트를 진행하고자 했다. (사실 이번은 수상을 목표로 하지는 않았는데 결과가 좋아서 기분은 좋았던..!) 프로젝트 개요 및 결과 - 서비스명 : Gotcha! - 서비스 개요 : 사진 1장으로 만드는 AI 게임 서비스 - 프로젝트 기간 : 23.02.27 - 23.04.07(6주) - 프로젝트 인원 : 6명 (백엔드 3명, 프론트엔드 3명) - 결과 : 우수상(반 2등) 수상 아이디어 기획 우리가 선택한 도메인은 '인공지능(영상)'이었다. 팀 내에 머신러닝을 해 본 친구도 있었고, 네이버 AI tech 수료생도 있어서 인공지능을 선택했다. 첫 주에 아이디어를 내는게 저어엉말 어려웠다..
-
[CI/CD] Spring, Jenkins, Nginx, EC2, Docker로 무중단 배포 구현 (1) EC2 서버 기본 설정 (도커, 젠킨스, Nginx, JDK, MySQL, Redis 설치)Dev Ops/CI-CD 2023. 3. 30. 23:27
들어가기 전에 이번 프로젝트에서 인프라를 담당하여 무중단 배포 인프라를 구축해보았다. 배포 자체도 처음인데 무중단 배포까지 하려니 헷갈리는 것도 많았고 오류도 미친듯이 터졌지만 잘 돌아가게 구성할 수 있어서 뿌듯했다. 아쉬웠던 점이나 개선해야할 점은 뒤에 적는 것으로.. 최대한 자세히 과정을 적어보고자 한다. [ Service Architecture ] 이번 포스팅에서 구현할 서비스 구조도는 아래와 같다. 포트를 2개로 구분하여, 서버를 새로 빌드하고 배포하는 과정에서 생기는 서버다운타임 없이 서비스가 운영될 수 있도록 했다. 1. 깃랩에서 브랜치에 변경사항이 생길 때마다 웹훅을 통해 Jenkins에게 신호를 보냄 2. Jenkins가 이를 감지하여 새롭게 업데이트된 Git을 clone하고 빌드 시작하며..
-
[Java Collection Framework] 3. Queue, PriorityQueue, Deque, ArrayDequeProgramming/Java 2023. 3. 13. 20:30
2. Queue 인터페이스 : 데이터 처리를 하기 전 요소를 보관하도록 설계된 컬렉션 ✅ 특징 1. 삽입, 추출, 검사 메소드 추가 - 기본 Collection 작업 외에도 추가 적인 메소드 제공 - 각 메서드는 두 가지 형식으로 존재(예외가 발생하는 것과 값을 반환하는 것으로 구분) - 대기열은 일반적으로 FIFO(선입선출) 방식으로 요소를 정렬 - add, remove, element 메소드의 경우 값이 없으면 예외가 발생하나, offer, poll, peek은 false나 null 값을 반환 값이 없을 경우 예외 발생 값 반환(false or null) 삽입 add(e) offer(e) 추출 remove() poll() 검사 element() peek() 2. null 값 추가 비허용 - Queue..
-
[SSAFY] 싸피 8기 2학기 공통 프로젝트 후기 - 우수상(1등)IT/SSAFY 2023. 3. 12. 13:02
최근 정신 없는 공채 시즌이다. 싸피에서 한 프로젝트와 그 안에서의 나의 역할, 배운점 등을 정리하면 좋을 것 같아 블로그에도 기록으로 남겨 본다. 프로젝트 개요 및 결과 - 서비스명 : Color the rock - 서비스 개요 : 볼더링 유저를 위한 실시간 소통 및 운동 기록 서비스 - 프로젝트 기간 : 23.01.09 - 23.02.17(6주) - 프로젝트 인원 : 5명 (백엔드 3명, 프론트엔드 2명) - 결과 : 반 🎉1등 수상🎉 아이디어 기획 1월 2일부터 1주간은 부트 캠프 기간으로 사실상 이 단계부터 아이데이션에 많은 팀들이 돌입한다. 부트 캠프 기간에 아이디어톤을 진행하는데, 9팀 중 1팀을 제외하곤 이 때 낸 아이디어를 모두 드롭했다. 싸피는 정말 오랜 기간 같은 주제로... 프로젝트를..
-
[Java Collection Framework] 2. 컬렉션(Collection), 리스트(List), ArrayList, LinkedList, VectorProgramming/Java 2023. 3. 7. 15:41
Collection 인터페이스 collection 계층 구조의 root interface로 object의 집합을 의미 List, Queue, Set이 이를 구현 ✅ 주요 메소드 1. List 인터페이스 ✅ 주요 메소드 🔽 메소드 공부하면서 생긴 궁금증 더보기 Q. 각각 new 생성자를 통해 생성한 ArrayList 객체가 같은 값, 같은 순서의 요소를 갖고 있을 때, hashCode값이 같은 이유가 뭘까? - hashCode는 각 객체에 고유한 속성값을 주기 위해 존재하며 보통은 메모리 주소를 기반으로 함 - 하지만 'ArrayList'는 hashCode 메소드를 override하여 리스트의 컨텐츠를 기반으로 값을 반환(메모리 주소가 아닌!) - ArrayList에서는 이터레이터를 통해 리스트의 요소들을..
-
[알고리즘] Scanner VS BufferedReaderComputer Science/Algorithm 2023. 3. 3. 19:21
📍 Scanner와 BufferedReader는 대표적으로 사용자(키보드) 입력을 받기 위해 사용하는 클래스 - BufferedReader가 속도 측면에서 더 우위를 가지고 있음 - 데이터 인풋의 양이 적을 경우에는 문제 없지만, 데이터 양이 많아질수록 성능 차이가 크게 발생 Scanner 사용법 import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.next(); // 공백 이전 문자열 반환 int inputNum = sc.nextInt(); // 공백 이전의 숫자 반환 } } BufferedReader 사..
-
[운영체제] 메모리 관리 - 페이징 (Paging)Computer Science/Operating System 2023. 2. 28. 13:15
들어가기 전에 External Fragmentation (외부 단편화) 란? : 총 메모리 공간을 계산했을 때 요청을 처리할만한 충분한 메모리가 있음에도 불구하고, 가능한 공간들이 연속적이지 않아 (저장 공간이 많은 hole 들로 조각조각 나있을 때) 프로세스를 할당할 수 없는 문제 - 프로세스는 실행이 되면 메모리에 올라가게 됨 - 프로세스는 연속적으로 배치가 됨(Contiguous allocation) → 프로세스를 쪼개서 배치할 수 없음 - 아래 그림과 같이 Process4가 들어갈 수 있는 자리가 있음에도 할당되지 못하고 대기하게 되는 문제 발생 ※ 참고: 프로세스를 밑으로 재배치하여 Hole 을 없애는 방법은 불가한가? 더보기 Compaction : 비어 있는 공간을 연속적인 공간으로 만들고 움..
-
[Java Collection Framework] 1. 컬렉션 프레임워크란?Programming/Java 2023. 2. 11. 22:34
컬렉션 프레임워크란? : 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스 집합 - 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓은 것 - 컬렉션 프레임워크는 자바의 인터페이스를 사용해 구현 📍Collection이란? : 오브젝트의 집합. A collection is an object that represents a group of objects (such as the classic Vector class). Collection Framework 종류 List : 인덱스의 순서로 요소를 저장하며 중복된 데이터 저장 가능 Queue : 데이터가 저장된 순서대로 출력되는 선입선출 구조를 갖는 선형 자료구조 Set : 순서가 없으며 데이터 중복..