전체 글205 [CI/CD] Github Actions란? (개념/ 용어 정리) 서론 이번 포스팅에선 최근 CI/CD로 많이 사용되는 github actions의 기본적인 개념과 주요 용어들에 대해 간략히 정리해보려한다. 필자도 미숙한 부분이기에 공식 홈페이지 내용 과 다른 포스팅의 검색을 통해 더 알아보는것을 추천한다. Github Actions란? workflow를 자동화 할 수 있도록 도와주는 도구를 말한다. 특징 repo에서 어떤 event가 발생했을 때 특정 작업을 실행시키거나, 주기적으로 어떤 작업들을 반복해서 실행시킬 수 있다. pull request 검사 누군가 repo에 pr을 생성하게 되면 github actions를 통해 해당 코드 변경분에 문제가 없는지 각종 검사를 진행한다. 빌드 및 배포 어떤 새로운 코드가 메인 브랜치에 유입(push)되면 github act.. Infra 2022. 11. 14. 드디어 떠난 퇴사 여행 (feat.제주도) 이 블로그를 처음 쓰게 된 계기가 작년 10월쯤이였나, 처음 코로나 걸렸을 때 치료센터에서 너무 심심한 나머지 시작하게 되었었다. 그때만 해도 Daily 카테고리 하나만 있었는데 어느덧 개발 관련 내용만 약 200개 정도가 됐고 그때 당시 재직하던 회사에서도 이직을 하게됐다. 다시 생각해봐도 그동안 정말 바쁘게 달려왔던 것 같긴하다. 이제야 여유를 찾아 포스팅을 할 수 있게됐다. 이번 글은 제목 그대로 제주도에서 지낸 여행 일기다. 글을 작성하고 있는 지금도 제주 애월 하이엔드 제주 카페 에 있다. 어제까지만해도 친구 둘과 총 셋이서 이곳저곳을 돌아다녔는데 친구들은 일정이 있어 돌아가고 혼자 제주에 남아있다. 어제 애들을 보내고 혼자 숙소로 돌아가는데 너무 외롭고 두렵기만 했다. 근데 오늘 일어나서 아침.. Daily/Trip 2022. 11. 1. [Git] fatal: bad config line 1 in file .gitconfig 해결 방법 서론 git 조작을 잘못 하다가 gitconfig쪽 설정에 문제가 생겨 포스팅 제목과 같이 에러가 발생하는 경우를 접할 수 있다. 해결 방법은 정말 쉬우나 갑자기 위와 같이 에러가 발생하면 당황하여 필자와 같이 많은 시간을 투자하는 불상사가 생길 수도 있을 것 같아 포스팅하려한다. 이 경우 .gitconfig를 삭제해주면 쉽게 해결할 수 있다. 그럼 삭제해주는 방법에 대해 알아보자. 해결 방법 .gitconfig 삭제 방법 일반적으로 C:\Users\ 의 경로에 들어가보면 .gitconfig 파일이 있을 것이다. 해당 폴더에서 .gitconfig를 삭제하면 끝이다. [에러 발생 할 때] [.gitconfig 삭제 후 동작 확인] 위와 같이 제대로 동작이 되는지 확인하기 위해서 아무 git 명령어를 입력해.. Git 2022. 10. 23. [Java] 리플렉션 (Reflection)이란 무엇일까? (개념/ 예시) 서론 이번 포스팅에서 다룰 내용은 '리플렉션'이다. 최근 "리플렉션이 무엇인가요?" 라는 질문을 받았는데, 제대로 된 답변을 못한 것 같다. C# 개발을 할 때 분명 사용은 해보았지만 개념적으로 설명하기엔 많이 미비한것같아 이번 기회에 정리를 해보려한다. 리플렉션(Reflection)이란? 리플렉션은 구체적인 클래스 타입을 알지 못하더라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API를 말하며, 컴파일 시간이 아닌 실행 시간에 동적으로 특정 클래스의 정보를 추출할 수 있는 프로그래밍 기법이라 할 수 있다. 그럼 이 리플렉션은 언제 사용할까? 동적으로 클래스를 사용해야할 때 사용한다. 다시 말해, 작성 시점에는 어떠한 클래스를 사용해야할지 모르지만 런타임 시점에서 가져와 실행해.. Programming/Java 2022. 9. 23. JPA Entity의 @Setter를 지양하는 이유에 대해서 (feat. @Builder) 서론 이번 포스팅에선 JPA의 Entity를 사용할 때 @Setter를 지양해야하는 이유에 대해 알아보려합니다. 물론 @Setter의 사용이 100% 잘못되었다는 것이 아닙니다. 양방향 바인딩 시 Setter 사용이 더 용이할 수 있으나 이번 포스팅에선 일반적인 케이스만 다뤄보도록 하겠습니다. @Setter를 지양해야하는 이유 @Setter는 사용 의도/목적이 분명치 않다. (Update인지 Create인지) Entity를 만들 때는 외부에서 쉽게 변경할 수 없게 @Setter를 사용하지않는다. 그 이유는 @Setter를 사용하면 의도가 불명확하고 변경하면 안되는 중요한 값임에도 불구하고 변경 가능한 값으로 착각할 수 있다. (== 안정성 보장이 안된다.) 그러면 만약 값을 업데이트 시켜줘야하는 상황일 .. Programming/Spring 2022. 9. 10. [Java] Codility - TapeEquilibrium 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance 100% 문제 풀이 class Solution { public int solution(int[] A) { int sumAllVal = 0; for(int cand : A) sumAllVal += cand; int minDiff = Integer.MAX_VALUE; int currentDiff = Integer.MAX_VALUE; int sumLeftVal = 0; int sumRightVal = 0; for (int i = 0; i < A.length - 1; i++) { sumLeftVal += A[i]; sumRightVal = sumAllVal - sumLeftVal; currentDiff = Mat.. Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - PermMissingElem 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance 100% 문제 풀이 // you can also use imports, for example: import java.util.*; // you can write to stdout for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int solution(int[] A) { Arrays.sort(A); for (int i = 0; i < A.length; i++) { if(i+1 != A[i]){ return i+1; } } return A.length + 1; } } Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - FrogJmp 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance Not assessed 문제 풀이 class Solution { public int solution(int X, int Y, int D) { if(Y-X == 0) return 0; return (int) Math.ceil((Y-X) / (double) D); } } 처음 접근할 땐 별 생각없이 반복문으로 접근했는데, 시간초과가 나는걸 보고 생각좀 하고 풀걸 후회했다. 그래서 그 후 다시 푼 풀이는 다음과 같다. y-x가 0이 나올 예외사항만 처리해주고, 나머지는 Math.ceil을 사용하여 처리해주었다. 주의할 점으론 (double) 을 붙여줘야지 반올림되는 부분만 조심하면 된다. Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - OddOccurrencesInArray 문제 2가지 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance 100% 문제 풀이 1 (첫 풀이) import java.util.*; public class L2_OddOccurrencesInArray { public static void main(String[] args) { int[] candiArr = {9, 3, 9, 7, 3, 9, 9}; Map candiMap = new HashMap(); for (int i = 0; i < candiArr.length; i++) { if(candiMap.containsKey(candiArr[i])) candiMap.put(candiArr[i], candiMap.get(candiArr[i]) + 1); else candiM.. Algorithm/Problem Solving 2022. 9. 5. [Java] Codility - CyclicRotation 문제 풀이 문제 문제 바로가기 Task Score 100% Correctness 100% Performance Not assessed 문제 풀이 // you can also use imports, for example: import java.util.*; // you can write to stdout for debugging purposes, e.g. // System.out.println("this is a debug message"); class Solution { public int[] solution(int[] A, int K) { for (int i = 0; i < K; i++) { boolean isFirst = true; int[] newArr = new int[A.length]; for (int j.. Algorithm/Problem Solving 2022. 9. 5. 이전 1 2 3 4 5 6 ··· 21 다음 💲 많이 본 글