본문 바로가기

분류 전체보기

(18)
2023 오픈소스 아카데미 컨트리뷰션 후기 Challenges & Masters 오픈소스 아카데미 컨트리뷰션(이하 OSS) 이란? 오픈소스에 대한 진입장벽을 허물고 선배 개발자와 함께 컨트리뷰션을 진행함으로써 오픈소스에 대한 문화를 경험할 수 있는 멘토링 프로그램이다. 주관처[1] open up(오픈소스 소프트웨어 통합지원센터)이다. 다양한 공개SW 사업 및 오픈소스 활동을 독려하고 추진하고 있다. 7/3 발대식 발대식 때 팀별로 모여 앉아 발대식을 진행하였다. 내가 신청한 오픈소스는 "실시간 동시 편집 애플리케이션을 지원하는 오픈소스 Document Store Yorkie[2]" 이다. 발대식 때는 발대식과 함께 각 팀별로 킥오프를 진행하였다. Yorkie 오픈소스 소개, 자기 소개, 진행 방법 등을 듣게 되었다. 7/8~8/4 Challenges 오픈소스에 대해 이해 테스트를 진..
Intellij 유용한 Plugin들 9선 안녕하세요. 현재 회사에서 개발할 때 사용하고 있는 유용한 Plugin들을 소개합니다. 아래 플러그인들을 적극 활용하여 더 나은 개발을 진행하면 좋겠습니다! 1. env files support (★ 평점 4.7) 환경변수 .env 파일에 저장한 환경 변수에 대해 구문 강조, 내용 표시, 참조하는 코드로 이동, 환경 변수 이름 변경시 모든 코드 부분 업데이트, 환경변수에 대한 에러 핸들링 등을 제공한다. 특히 아래 사진처럼 .env 파일에 작성한 key와 value를 자동완성으로 보여준다. 2. Atom Material Icons (★ 평점 4.3) 해당 플러그인은 프로젝트의 구조 폴더 및 파일 이미지를 변경해주는 플러그인이다. 좀 더 쉽고 이미지를 통해 편하게 구분하고 볼 수 있습니다. 3. CodeM..
[Git] 프로젝트 git flow 전략 학부생, 대외활동 등을 통해 진행하던 프로젝트는 단순히 2~3명 정도가 같이 소스 코드를 관리 했기 때문에 단순히 해당 글[1]을 한번 읽어보고 우리 팀에 맞는 기초적인 방법으로 관리를 하였다. 그러나 현재 회사에서 진행중인 프로젝트는 약 50명 이상이 하나의 gitlab을 사용하고 각 파일들을 관리한다. 많은 사람들이 개발하고 운영해야 하는 git flow 전략은 어떻게 진행될까? 이를 어떻게 관리하는지 신입으로써, 직접 배운 내용을 정리해보았다. 그림으로 한 눈에 보면 다음과 같이 정리할 수 있다. 개발을 하기전 먼저 intellij와 jira를 연동해야 한다. 과정[2]은 다음 글에 작성되어 있다. [1] jira에서 이슈가 발행되어, 해당 이슈를 feature 브랜치로 만든다. 사용할 브랜치는 ..
[Node.js] Race Condition과 해결 원리 본 글에서는 Node.js에서 발생할 수 있는 Race Condition에 대해 작성하려고 한다. + 첫 프로젝트인 새싹챌린지를 진행하면서 겪었던 일까지 1. Race Condition이란? Race Condition(경쟁 상태) 혹은 경쟁 조건이라고도 불리우며 로 둘 이상의 스레드, 프로세스 그외 작업들이 공유 자원(변수, 메모리, 파일 등)에 대해 동시에 접근할 때 누가 언제 데이터를 읽거나 쓰느냐에 따라 결과가 달라질 수 있는 문제를 이야기 한다. 다음은 간단한 예시이다. 나의 잔액은 10만원이 있다. 이 잔액에는 여러 사람들이 동시에 입금할 수 있다. 두 사람이 각각 거의 동시에 30만원, 10만원을 입금했다고 가정하자. 입금이 확인 되면 내 잔액을 확인하고 내 잔액 = 잔액+입금 금액(myAmo..
[Python] Multiprocessing과 Threading 에 관한 고찰 ※ SW 마에스트로 수료 이후 기술 블로그 활동 시작을 통해 과거 부터 고민했던 내용이나 해결했던 내용, 이후 공부했던 내용 등을 합쳐, 꾸준히 작성하지 못한 내용들을 담고 있습니다. 시작하기에 앞서...코드를 보면 time.sleep(0.5) , time.sleep(0.1) 하는 부분이 보인다. 당시 병렬처리시 데이터가 꼬이거나 동시성 문제가 발생해서 넣었던 것으로 기억한다. 그만큼 나는 컴퓨터 과학에 대한 지식이 부족했고... 호기심만 많던 개발자였다. 1. 프로젝트 소개 과거, 2021년 4학년 1학기 때 League of Legends 전적 API를 통해 최근 30게임을 전적갱신 API를 개발[1]한 경험이 있다. 컴퓨터 과학에 대한 지식도, 각종 IDLE 사용법도 익숙치 않던 터라 뭐든 부족한 ..
[Database] Data Page Structure, SQL 서버가 갖는 페이지의 구조 본 글은 공부하면서 수정중이기 때문에 오타나 틀린 부분이 존재할 수 있습니다! 회사에서 Table을 생성하던 중 다음과 같은 에러가 발생하였다. 사양은 다음과 같았다. MariaDB 10.10.3 , InnoDB Engine ERROR 1118: Row size too large(> 8126). The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs 이유는 간단하다. 한 row에 넣을 수 있는 최대 사이즈를 초과했기 때문이다. 검색을 하다보면 해결하는..
[Spring boot] JPA 기본 키 생성 전략(AUTO, IDENTITY, SEQUENCE, TABLE, UUID) Index에 대해 공부하다가 JPA의 기본 키 생성 전략들은 어떤 방법으로 생성하는 편리한 어노테이션들인지에 대해 공부하게 되었다. JPA 기본 키 생성 전략 JPA(Java Persistence API)에서는 엔티티의 기본 키를 생성하기 위해 다양한 전략을 제공한다. 다음은 5가지의 엔티티 기본키 생성 전략이다. AUTO, IDENTITY, SEQUENCE, TABLE, UUID 1. @GeneratedValue(strategy=GenerationType.AUTO) 자동으로 기본 키를 생성하며, 데이터베이스 벤더(DBMS를 개발하고 판매하는 회사)마다 다른 전략을 사용한다. 따라서 개발자가 직접 전략을 선택할 필요가 없다. 다음은 데이터베이스 벤더에 따라 사용하는 전략이다. MySQL: AUTO_INC..
[Spring boot] Spring Boot Configuration Annotation Processor not confiugred @ConfigurationProperties 어노테이션을 사용할 때 import는 되었지만 다음과 같은 오류가 발생하였다. Spring Boot Configuration Annotation Processor not confiugred Open documentation을 클릭하면 https://docs.spring.io/spring-boot/docs/2.7.7/reference/html/configuration-metadata.html#appendix.configuration-metadata.annotation-processor 홈페이지로 이동하게 되고 다음과 같은 위치로 이동한다. 여기서 각 빌드 관리에 따른 디펜던시를 복사하여 넣어주면 된다. 이 후 다음과 같은 오류로 바뀔텐데 File - Invali..
[OS] Thread Safe(스레드 안전) 먼저 Thread(스레드)란 프로세스내에서 실행되는 여러 흐름의 단위이다. 하나의 프로세스내에서는 기본적으로 한 개 이상의 스레드를 가질 수 있는데, 두 개 이상의 스레드를 수행하는 것을 멀티 스레딩이라고 한다. 프로세스 내부의 스레드들은 각각 자신의 스택 영역을 독립적으로 가진 상태로 Code, Data, Heap 영역을 서로 공유하여 사용하기 때문에 두 개 이상의 쓰레드가 자신이 포함된 프로세스의 영역에 있는 함수를 호출할 수 있다. 그렇기 때문에 두 개 이상의 스레드들이 동시에 공유중인 프로세스의 영역(Code/Data/Heap)에 접근하게 되면 쓰레드가 충돌하는 동기화 문제가 발생할 수 있다. 공유 변수의 값이 50이라고 가정할 때 A 쓰레드가 접근하였을 때 해당 공유 변수의 값이 50 이상일 경..
수료하고 쓰는 SW 마에스트로 13기 합격 후기 수료하고 쓰는 SW 마에스트로 13기 합격 후기 및 연수 과정 중 알게된 내용 일부가 들어있습니다. 합격 후기 전에 SW 마에스트로에 대해 잠깐 짚고 넘어가겠습니다. - SW 마에스트로 과정은 창의도전형 SW인재 육성으로 SW산업의 미래를 선도하는 정부지원 사업입니다. 창의·도전형 프로젝트 기획·개발과 SW분야 최고 전문가들의 집중 멘토링 및 심화교육을 통해 최고급 인재로 성장할 수 있습니다. SW 마에스트로 과정은 다음과 같이 진행됩니다. 13기 기준 4월 초에 합격자를 발표합니다. 4-5월 멘토링, 특강, 그 외 디자인 씽킹 교육 등의 다양한 예비과정을 통해 많은 연수생들과 멘토님들을 만나볼 수 있는 기회를 갖게 됩니다. 이를 통해 마음이 맞는 연수생들과 팀의 기술이나 방향성을 이끌어주실 수 있는 담..