최근 마지막 개인 프로젝트를 시작하게 되었다. 혼자 홈쇼핑 사이트를 만들어 운영까지 하는것을 목표로 하는거라 프론트의 비중은 줄이고 백엔드를 중점적으로 할 계획이라 일반적인 css를 사용하기에는 무리가 있었기때문에 tailwind를 도입하기로 했다. Tailwind CSS란 무엇인가 Tailwind CSS는 HTML,CSS,JavaScript를 위한 신속하고 직관적인 디자인 시스템을 제공하는 CSS프레임워크이다. 내부를 본다면 이미 만들어져있는 CSS,Js코드를 class를 통해서 불러올수 있는 프레임워크이다. Tailwind CSS를 설치하는 방법 Tailwind에는 일반적인 Tailwind와 MatarialTailwind가 따로있다. 그렇기에 부트스트랩처럼 이미 만들어져있는 컴포넌트를 사용하려면 Ma..
분류 전체보기

이번에 개인프로젝트로 대규모 홈페이지를 시작하였다. 프로젝트를 시작하기 전에 개인 우분투서버의 패스워드 인증을 막고 개인키 인증만 허용하게 구상을 했지만 이유를 알수없는 로그인 오류로 서버로부터 거부를 당해왔다. 그렇기에 이번에는 우분투 서버에서 개인키 인증을 어떻게 하는지에 대해서 적어보려고 한다. 과정은 간단하지만 파일권한이 하나라도 맞지 않다면 거부가 뜨기에 잘 확인해야 한다. 우선 mkdir -m 700 ~/.ssh 으로 폴더에 700 권한을 주고 생성한다. 그다음 공개키, 개인키를 생성해야 하는데 ssh-keygen -t rsa 이렇게 입력을 하고 엔터를 계속 누르면 ~/. ssh 폴더에 id_rsa, id_rsa.pub 파일이 생겨있을 것이다. 생성이 되었다면 ~/. ssh 폴더에 author..
코딩테스트 문제들의 답들을 보고 있다가 4중배열이 보여서 Hashmap의 4중배열 구조는 어떻게 되어있는지 짧게 기록을 남겨두려고 한다. Hashmap을 Map map = new HashMap(); idxMap.put("-", 0); // 공통적으로 다 들어가는 부분 idxMap.put("java", 1); idxMap.put("cpp", 2); idxMap.put("python", 3); idxMap.put("backend", 1); idxMap.put("frontend", 2); idxMap.put("junior", 1); idxMap.put("senior", 2); idxMap.put("chicken", 1); idxMap.put("pizza", 2); 카카오의 코테문제를 보면서 Hashmap의 구..
우분투에 nas시스템을 이식하면서 파티션의 잔여용량을 확인하는방법을 찾아서 기록을 해 놓는다. - 전체 용량 확인 (KB, GB) - df -P | grep -v ^Filesystem | awk '{sum += $2} END { print "full capacity(KB) : " sum " KB" }' df -P | grep -v ^Filesystem | awk '{sum += $2} END { print "full capacity(GB) : " sum/1024/1024 " GB" }' - 사용 가능 용량 확인 (KB, GB) - df -P | grep -v ^Filesystem | awk '{sum += $4} END { print "usable capacity(KB) : " sum " KB" }' d..

이번글에서는 백엔드 부분의 흐름에 대해서 설명해 보겠다. 깃허브액션은 이렇게 되어있는데 name: Build and Deploy on: push: branches: - main jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v2 - name: Setup Java environment uses: actions/setup-java@v1 with: java-version: 11 - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle run : ./gradlew..

국비교육을 끝내고 취업 전 개인프로젝트를 시작했다. 프로젝트를 시작하기 전에 빠르게 배포를 하기 위해서 깃허브 액션의 파이프라인을 구축하고 도커 swarm으로 무중단배포를 하는 방향으로 3일간 세팅을 시작하여 세팅이 끝나 이렇게 정리를 해보려고 한다. 리액트를 로컬환경에서 셋팅하는 글은 이전글에서 써놨으니 깃허브액션부터 정리하겠다. 깃허브 액션을 연동하기 위해서는 개발툴과 git을 연동시킬 필요가 있다(intellij 기준) 우선 깃허브의 레포주소를 추가해줘야한다. 보통 git bash에서 git remote add origin [브랜치 이름] 이렇게 사용이 가능하지만 여기서 추가도 가능하다. 이렇게 깃허브레포의 Https주소를 추가했다면 코드를 추가해줘야 한다. 보통 git bash로 파일을 push ..
오늘부터 스프링부트 프로젝트를 시작하였다. 오늘은 첫날이라 부트프로젝트 생성+리액트 테스트, 도커 서버세팅,깃랩 CI/CD 구축까지 할 생각이다. 처음이라 Boot의 생성과 리액트의 실행에도 애를 먹어서 까먹어서 같은 실수를 하지않기 위해서 기록을 남겨보려고 한다. 개발환경은 개발툴 : intellij IDEA JDK : 11 백엔드 : Spring Boot 2.7.16 프론트엔드 : React 데이터 상호작용 : Axios 이렇게 생성하였다. 우선 프로젝트 생성에서 주의할점으로 1. VPN을 사용중이라면 연결해제(로컬호스트 연결거부뜸) 2. JDK버전이 1.8, 11 이라면 부트버전 2.7을 사용해야한다(버전이 맞지않다는 오류뜸) 3. 패키지명은 기존 스프링 프레임워크와 동일하게 com.xxx.comt..
이번에는 1편에 이어 깃허브 액션의 구성에 대해서 써보도록 하겠다. 2편에서는 1편의 gradle build가 끝났다는 전제로 깃허브 액션의 파이프라인을 만드는 법에 대해서 써보려고 한다. Gradle 빌드도 그랬지만 깃허브액션도 Spring Framework에 관한 정보가 전혀 없었다. boot에서는 jar파일로 처음부터 gradle빌드가 되어서 생성되기 때문에 도커로 배포한다고 해도 도커에 빌드하여 바로 배포가 가능하다. 하지만 이것은 불가능하기 때문에 생각한 것이 나 같은 경우 개인서버의 도커에 DockerFile로 미리 우분투 20.04 설치, jdk8을 설치, 환경변수로 지정하여 빌드를 한 다음 그렇게 만든 이미지를 미리 만들어 놓은 다음 우분투 컨테이너에 톰캣을 설치하여 scp로 파일전송을 하..

국비교육이 끝나고 슬슬 최종프로젝트에서 구축했었던 자동배포 시스템에 대해서 적어보려고 한다. 이번 국비교육에서 가장 크게 느꼈던 점이 다른 분들은 기술에는 크게 공을 많이 들이지만 배포에는 도전을 하지 않는다는 것을 많이 느꼈다. 그렇기에 이번에 팀원들을 설득하여 동의를 받고(반대는 많았지만...) 프로젝트 시작 1주일 전부터 밤을 새워가며 깃허브액션에 대해서 공부를 시작했었다. 하지만 시작부터 큰 문제가 있었다. 팀원들의 반대도 있었지만 그보다도 스프링 프레임워크를 깃허브액션으로 배포하려니 구글에는 스프링부트에 관한 정보밖에 없었다.(정말로 하나도 없었다.....) 구글에 정보가 없었기 때문에 ChatGPT가 도움이 될 리가 없었고 그렇기에 Gradle스크립트를 처음부터 공부하기 시작했었다. 그렇게 공..
오늘은 사진업로드에 대해서 적어보도록 하겠다. 우선 파일 업로드를 위해서는 pom.xml에서 dependency를 추가해 줘야 한다. commons-fileupload commons-fileupload 1.5 org.apache.logging.log4j log4j-slf4j-impl 2.20.0 org.apache.logging.log4j log4j-core 2.20.0 org.apache.logging.log4j log4j-api org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4 1.16 제일 위에 것이 파일 업로드를 하기 위해 필요한 파일이며, 아래는 JDBC의 로그를 실시간으로 확인할 수 있는 dependency이다. root-context.xml설정은 전에 올린 ..
이번글에서는 간단히 유튜브 영상을 뛰우는 방법에 대해서 적어보도록 하겠다. 이번에는 추가적인 설정이 필요하다. root-context.xml에 들어가서 중간에 mapper.xml파일과 conpig.xml파일을 등록해준다. classpath:mybatis/test-mapper.xml classpath:mybatis/Youtube-mapper.xml pom.xml의 dependency에 org.mybatis mybatis 3.5.13 org.mybatis mybatis-spring 2.1.1 이 두가지를 추가해주 Mybatis를 사용하기 때문에 Java Resources > src/main/resources > mybatis라는 폴더를 만들고 config.xml과 xxxx-mapper.xml파일을 만들어준다..
최근 정보처리기사 실기와 과제등 할것이 많아서 상세한 정리를 할 여유가 없었다. 하지만 최소 30분은 투자하여 나 자신이 이해할 수 있을정도의 디테일은 살리면서 다시 앞으로 꾸준히 블로그를 적어볼 생각이다. 오늘은 스프링으로 JDBC을 사용하기 위한 설정을 끝낸 후 페이지에 DB버전을 뛰우는 방법에 대해서 적어보려고 한다. 이것을 하는 이유는 국비학원을 가보면 강사님이 매번 수업시작이 버전뛰우는 작업을 매일 시키신다. 나는 연습을 꾸준히 해서 그런지 바로 뛰우지만 스프링이라는 프레임워크가 하나의 오타, 순서가 이상해도 디버그 불가가 뜨기때문에 가장 기초인 버전뛰우기로 시작한다. 그럼 시작하겠다. 우선 전에 썼던 글을 보고 세팅을 끝마치고 Java Resources > controller이라는 패키지를 만..