전체 글

멋진 개발자가 되자
· 언어/JAVA
개발자로서 Java언어를 제일 먼저 접했고 현재도 주로 Java언어를 사용하고 있다. 그런데 개발을 하면서 왜? 라는 고민을 하면서 개발을 시작한지 그렇게 오래되지 않았다.처음엔 궁금하지도 않았고, 그냥 다들 그렇게 하니깐, 시키니깐 이라는 생각을 가지고 일을 했던 것 같다. 요즘엔 왜? 라는 생각을 의식적으로 많이 하려고 하는데어려움에 부딪히거나 바쁘면 그 생각을 또 지나치는 것 같다.. 그래서 내가 하고 있는 것들을 왜 사용하는지 이유를 좀 더 확실하게 내것으로 만들기 위해아주 근간부터 하나하나 기록해보려고 한다. 개발이 아니더라도 인생에서 확실히 알고 무엇을 한다는 것은 중요한 것 같다!  자바의 역사자바는 1991년 6월 썬 마이크로시스템즈에 다니던 제임스 고슬링과..
· git
Github Actions를 이용해 CI를 구축하던중 로컬에서도 그렇고 Github Actions에서도 그렇고 Gradle Build 중에 자꾸 다음 사진처럼 에러가 났었다.. 테스트 코드에서 DB 연결이 문제가 있는것 같다는 것은 확인했는데 삽질만 계속 했었다... 그래서 우선 로컬에서 먼저 Build를 성공 시키기 위해 열심히 서칭 했다.. 우선 결과적으로 build.gradle.kts 파일에서 tasks.withType { useJUnitPlatform() } 이 코드에서 문제를 해결해야 했다! 그래서 여기에 yml 변수 값들을 다 세팅 해줬다! tasks.withType { useJUnitPlatform() systemProperty("spring.datasource.url",System.gete..
내 풀이 class Solution { public int solution(int[] bandage, int health, int[][] attacks) { // t초 동안 붕대를 감으면서 1초마다 x만큼의 체력을 회복함 // t초 연속으로 붕대를 감는데 성공하면 y만큼의 체력을 추가로 획득 // seconds == t -> +y // 공격당하면 취소당하고 // 당하는 순간에는 붕대 못감음 // 취소되면 붕대감기 연속 성공 시간 0으로 초기화 // 피해량 만큼 줄어들고 0 이하면 죽고 체력 회복 안됨 // bandage = 붕대감기 기술 정보 [t,x,y] = [붕대감기 시전 시간, 초당 회복량, 추가 회복량] // health = 최대 체력 // attacks = 공격 패턴 attacks[i] = [공..
· git
사이드 프로젝트를 진행 하면서 CI/CD까지 구축해보려고 한다! 회사에서는 Jenkins와 CodeDeploy를 써서 CI/CD가 구축 되어져있었는데 나는 잘 구축된 배포 프로세스를 사용하고 따르기만 했었다! 그래서 내가 한번 직접 구축해보기로 결정했다. 처음에 Jenkins로 하려고 했는데 Github Actions라고 간편한 서비스가 있어서 Github Actions를 먼저 사용하고 나중에 사이즈가 좀 더 커지면 jenkins를 사용해보자! 1. Github Actions 설정 New workflow를 누르면 다양한 것들이 나오는데 나는 Gradle 프로젝트를 빌드할것이기 때문에 Java with Gradle을 선택! 2. gradle.yml 설정 # This workflow uses actions ..
· 언어/JAVA
코딩테스트 문제를 풀다보면 N진법을 활용한 문제가 꽤나 나오는 것 같다. 그래서 까먹지 않도록 저장해놓고 익히자!! String notation = Integer.toString(100, n); Integer.toString(변환할 숫자, 변환할 진법); 직접 계산해보기 public String notation(int num, int n) { StringBuilder sb = new StringBuilder(); if (num == 0) return "0"; // 0이면 0리턴 while (num > 0) { if (num % n < 10) { sb.append(num % n); // 나머지가 1자릿수면 그대로 추가 } else { sb.append((char)(num%n-10 + 'A')); // 10..
· Redis
Remote Dictionary Server의 약자 Redis는 오픈소스, 인-메모리 데이터 구조 스토어로, 데이터베이스, 캐시 및 Message Broker로 사용됩니다. Key - Value 데이터 구조를 사용하며, 문자열, 리스트, set ,Hash 등 다양한 데이터 구조를 지원합니다. 지금까지 써왔던 Mysql와 같은 관계형 데이터베이스(RDBMS)가 아니고 비관계형 데이터베이스 관리 시스템이다. 이는 NoSql이라고도 한다. NoSql이란? (간단하게만 알아보자) Not Only Sql 의 약자로 RDBMS가 아님을 의미한다. 서로 연관된 그래프 형식의 데이터를 저장할 수 있는 Graph Store Row가 아닌 Column 위주로 데이터를 저장하는 Column Store 비정형 대량 데이터를 ..
· git
깃헙을 하다보면 실수로 올리면 안되는 파일을 올릴때가 있다! 이미 올라간 저장소에서만 지워야 하고 로컬에서는 지우면 안되는 경우에는 git rm --cached -r '지우고싶은 파일이름' 위 명령어로 지워주면 된다! 그리고 commit & push 를 하면 끝!
· 잡담
공부를 하면서 내용을 정리하기 위해 블로그를 쓰기 시작했었다.. 또 더해서 내 포트폴리오가 되기도 하는거니깐... 근데 요즘 드는 생각이 공부하면서 정리를 하긴 하는데 내가 정리한 내용들은 다 알고있는지..? 생각을 해보면 다른 분들이 작성해놓은 블로그 내용들을 보고 따라서 정리하는 수준으로 밖에 안한 것 같다.............. 그러면 내 것이 아니잖아??? 흠... 앞으로 어떻게 해야할까..? 시간이 조금 걸리더라도 내가 우선 이해를 완전히 하고 내 생각대로 정리를 하는게 맞을까? 잠깐 생각을 했을때는 그게 맞는 것 같다!! 시간이 걸리더라도 내가 확실히 이해하고 이해한 내용을 정리해서 올리도록 해보자..! 참고는 하되 최소 5개의 내용은 비교해보고 이해해서 올리도록 노력해보자..! 양보단 질...
[⭐항상 새겨두어야할 공부 방법⭐] - 다른 사람한테 설명 가능해야 함! (설명 못하면 제대로 이해 못한거) - 항상 구조적으로 생각하고 이해하기 ( 왜 이렇게 되는지 ) - 하고 많은 다양한 똑같은 것들 중에서 왜 이걸 사용하는지? Nest.js 를 공부하다가 본 내용인데 Nest에서 "모듈 이벤트는 위상 정렬(Topological Sort)을 거쳐 거리에 따라 정렬된 후, onModuleInit를 호출한다" 라고 해서 위상정렬이 뭔지 한번 찾아봤다!! 위상정렬은 쉽게말해서 "순서가 정해져있는 작업을 차례대로 수행해야 할 때 그 순서를 결정해주기 위해서" 사용하는 알고리즘이다! - 위상 정렬은 여러가지 답이 존재할 수 있다! - DAG(Directed Acyclic Graph)에만 적용할 수 있음..!
[⭐항상 새겨두어야할 공부 방법⭐] - 다른 사람한테 설명 가능해야 함! (설명 못하면 제대로 이해 못한거) - 항상 구조적으로 생각하고 이해하기 ( 왜 이렇게 되는지 ) - 하고 많은 다양한 똑같은 것들 중에서 왜 이걸 사용하는지? 1. 다른 함수의 인자로써 이용되는 함수! 2. 어떤 이벤트에 의해 호출되어지는 함수! 🔸콜백함수를 사용하는 이유! 1. 모든 사람이 해당 기능을 사용할 때 모두 같은 처리를 하기 위해서 2. 비동기처리를 해야할 때 유용하기 때문에 참고 .. https://bestkingit.tistory.com/74 https://satisfactoryplace.tistory.com/18
나는이지훈
나는이지훈