🍏 최근 포스트
-
JPA 구조는 어떻게 되어있고 spring-data-jpa와는 뭐가 다를까?
JPA는 Java Persistence API로, 자바 객체와 DB를 매핑하기 위한 인터페이스를 제공하는 자바 ORM 기술의 표준 명세입니다. SQL Mapper ORM sql과 객체를 매핑 DB와 객체를 매핑 mybatis, jdbcTemplate 등 hibernate, EclipseLink 등 개인적으로 mybatis를 썼을 때는 복잡한 sql문이 필요할 때는 비교적 편리하게 작성할 수 있다는 장점이 있었습니다. 하지만 DB를 중간에 변경하기 어렵고, 기획 변경사항이 생길 때마다 sql문을 일일이 수정해줘야하는 반복 작업을 수행해야 했습니다. 그래서 CRUD를 하루종일 짜고 있는 개발에서 벗어나 비즈니스 로직에 집중하기 위해 ORM 에 관심을 가지게 되었습니다. ❓ORM이란 객체는 객체대로, DB는 ..
-
[Java/kotlin] None of the following functions can be called with the arguments supplied 에러 해결
Java로 개발중이던 소셜로그인 코드를 코틀린으로 마이그레이션 하는 과정에서 만난 에러를 공유합니다. WebSecurityConfiguration에서 접근허용 배열인 AUTH_WHITELIST를 antMatchers에 설정하려고 할 때, None of the following functions can be called with the arguments supplied. 에러를 만나게 되었습니다. 해당 에러는 제공된 인수로 다음 함수를 호출할 수 없다는 에러인데, 이미 존재하는 배열인 AUTH_WHITELIST를 vararg(가변인자) 함수로 넘기려고 할 때 스프레드 연산자인 *를 붙여주지 않아서 발생하는 문제였습니다. 기존 코드 private static final String[] AUTH_WHITELI..
-
[Java] JVM 구조와 메모리 영역 - Method, Heap, Stack Area
JVM 동작 과정 JVM은 자바 가상 머신으로, 자바 바이트 코드를 해석하고 실행하는 역할을 합니다. 자바 코드는 JVM을 통해 실행되므로 Window, Linux와 같은 다른 OS에서도 동일하게 실행할 수 있다는 장점이 있습니다. 구체적으로 메모리 영역을 공부하기 전에 JVM이 자바 소스코드를 어떻게 OS에서 실행하는지 과정을 살펴봅시다. 1. 자바 소스코드인 .java 파일을 컴파일러가 자바 바이트 코드인 .class로 변환합니다. 2. .class 코드를 JVM의 클래스 로더에게 보냅니다. 3. 클래스 토더는 JVM 런타임 데이터 영역으로 로딩하여 JVM의 메모리에 올립니다. 모든 자바 프로그램은 JVM을 통해 실행됩니다. 일단 프로그램이 실행되면 JVM은 OS로부터 프로그램을 수행하는데 필요한 메..
-
Git Repository not found 에러 해결 with 인텔리제이 단축키
⚠️ 에러 상황 프로젝트 organization에 초대받고, 리드 개발자 분께서 private 레포지토리를 하나 생성하여 초기 세팅을 한 상태에서 git clone을 했습니다. 그리고 한참 로컬에서 작업하다 Intellij 단축키로 git push를 하려고 하니 해당 에러가 나면서 젯브레인을 통해 깃헙 로그인을 하라는 창만 자꾸 나타났습니다. remote: Repository not found.fatal: repository 'https://github.com/organization /repositoryName.git/' not found 뒤늦게 레포지토리에서 제 권한이 read였다는 걸 알고, 권한 수정을 부탁드려서 admin으로 바꿨지만 여전히 같은 에러를 내고 있었습니다. 레포의 admin권한을 받..
🍎 인기 포스트
-
Jenkins sudo: not found Build step 'Execute shell' marked build as failure 권한 에러 해결하기
Jenkins로 docker 이미지를 빌드하고 hub에 푸시하는 과정을 .sh 파일 하나를 실행해서 한꺼번에 수행하려고 합니다. 하지만 Jenkins가 ec2 서버에서 sudo 명령어를 실행하려면, Jenkins에게 따로 권한을 줘야합니다. 권한을 주지 않고 빌드하면 sudo: not found Build step 'Execute shell' marked build as failure 같은 에러가 납니다. 그래서 root 계정으로 들어가서 /etc/sudoers 파일을 수정해줍시다. su # 루트 계정으로 접속하기, password 를 모른다면 초기 설정해주시면 됩니다. cd /etc # etc 폴더로 들어가서 vi sudoers # root 권한으로 sudoers 파일 열기 sudoers 파일로 들어가..
2021.04.30 17:10 -
Springboot Gradle + AWS EC2 + Jenkins + Docker로 배포까지(2) : Jenkins와 Github 연동하기
이제 ec2에 jenkins를 쓸 수 있는 준비를 완료했으니, 이제는 github과 Jenkins를 연결해보겠습니다. 연동하는 방법에는 두 가지가 있습니다. github 아이디/비밀번호로 접속 ec2 ssh 공개키/비밀키로 접속 여기서는 보안 상의 이유로 두 번째 방법인 ssh로 연결하겠습니다. 연동하는 과정은 다음과 같습니다. 1. EC2에서 ssh 키 생성 2. Github에서 ssh 키, webhook 등록 3. Jenkins에 Credential ssh 키 등록 4. Gradle 버전 설정하기 1️⃣ EC2 ssh 키 생성하기 docker-compose 를 실행하고 나서 ls -a 로 폴더를 보면 .ssh가 생성되어 있습니다. .ssh 폴더로 들어가서 ssh 키를 생성해주는 명령어를 실행해주세요...
2021.04.30 16:18 -
Springboot Gradle + AWS EC2 + Jenkins + Docker로 배포까지(1) : EC2에 Docker 이미지로 Jenkins 설치하기
아직 ec2에 docker, docker-compose 가 설치되어있지 않다면 다음 포스팅을 먼저 참고해주세요! 2021.04.30 - [🌱 Develop/devOps] - 🐳 EC2에 docker , docker-compose 설치하기 🐳 1) EC2에 docker 이미지로 Jenkins 설치하기 환경: ec2 프리티어 / linux ec2 자체에 jenkins를 바로 설치할 수도 있지만, docker image로 jenkins를 받아와서 사용해보려고 합니다. 일단 mkdir jenkins-dockerfile 로 폴더를 만들어서, 이 폴더 밑에 Dockerfile을 하나 생성해주세요. jenkins 최신 이미지를 받아오는 Dockerfile입니다. 📂 home/ec2-user/compose/jenkin..
2021.04.30 15:44 -
[IntelliJ] 코드 변경할 때마다 자동 재시작 하는 방법 총동원 모음집
** Intellij 버전: 2020.3.1 기준 ** Mac Big Sur 11.0.1 순서대로 진행하면서 적용되는 데까지 시도해보시면 됩니다. Springboot로 관리자 페이지를 제작하면서 html 변경 사항이나 코드 변경 사항이 있을 때마다 재시작 하는 것이 매우 불편해서 설정을 다 찾아보았습니다. 저는 참고로 6단계까지 가서야 적용이 되었습니다. 1️⃣ build.gradle 파일 developmentOnly("org.springframework.boot:spring-boot-devtools") 추가해주세요. dependencies { implementation('org.springframework.boot:spring-boot-starter-web') implementation('org.spr..
2021.01.10 02:17