성장 하고 싶은 개발자
-
나는 이런 사람 입니다. -
안녕하세요. AMAD 입니다. 안녕하세요. AMAD 입니다.
최선을 다해 노력해, 최상의 결과물을 도출하려 합니다. 최고도 좋지만, 최후까지 살아 남는 사람이 되고자 합니다.
My project
내가 겪은 에러의 고통 당신까지 겪을 필요는 없습니다.
-
cannot open directory '/docker-entrypoint-initdb.d/': permission denied cannot open directory '/docker-entrypoint-initdb.d/': permission denied
에러와 오류에 지친 여러분께 심심한 위로의 뜻을 전합니다. 아울러 해당 포스팅은 개발실력 향상을 위한 학습형 포스팅과는 성격이 다르다는 점 밝힙니다. 원인과 결과, 해당 오류의 해결을 위한 짤막한 글로 구성되어 있다는 것을 알려드리며, 모쪼록 이 페이지가 여러분의 마지막 검색이 되길 기원합니다. 에러문구 cannot open directory '/docker-entrypoint-initdb.d/': Permission denied 요약: docker 이미지로 mysql 컨테이너 실행 시 실행 될 init 스크립트를 읽지 못하는 상황 (권한 문제인 것으로 보임) 시도1 - 도커 파일 수정 구글링 후 스택오버플로 등의 검색결과를 바탕으로 컨테이너 생성 후 몇가지 권한 부여하는 명령어 추가 (유저를 mysql.. -
could not resolve type alias could not resolve type alias
에러와 오류에 지친 여러분께 심심한 위로의 뜻을 전합니다. 아울러 해당 포스팅은 개발 실력 향상을 위한 학습형 포스팅과는 성격이 다르다는 점 밝힙니다. 원인과 결과, 해당 오류의 해결을 위한 짤막한 글로 구성되어 있다는 것을 알려드리며, 모쪼록 이 페이지가 여러분의 마지막 검색이 되길 기원합니다. 에러 문구 요약: DB의 값을 select해서 해당 DTO type의 객체에 담아 getter 및 setter 사용하고자 함 앱 실행 당시 소스 코드 요약: EALrecord 테이블과 매핑되는 DTO 해당 테이블 컬럼 해당 DTO타입으로 객체 생성 select 해온 테이블 정보를 DTO 객체에 저장 내가 하고자 했던 코드 (값을 담은 객체에 getter로 battery 값 불러오기) But, 앱 실행 자체가 되.. -
cannot invoke because is null cannot invoke because is null
에러와 오류에 지친 여러분께 심심한 위로의 뜻을 전합니다. 아울러 해당 포스팅은 개발 실력 향상을 위한 학습형 포스팅과는 성격이 다르다는 점 밝힙니다. 원인과 결과, 해당 오류의 해결을 위한 짤막한 글로 구성되어 있다는 것을 알려드리며, 모쪼록 이 페이지가 여러분의 마지막 검색이 되길 기원합니다. 에러 문구 요약: 다수의 스레드를 실행 (스케줄러에 따라 각각의 스레드가 서로 다른 시간에 실행되는 앱) 앱 실행 당시 소스 코드 요약: 각 객체를 new로 생성하여 스레드에 전달 스레드 실행 후 value에 값을 담아 로그를 찍어본 결과 변수에 값이 잘 담긴 것을 확인 할 수 있다. 각각의 스레드에 @Service 어노테이션 역시 붙여주었다. But, 앱 실행시 에러! 에러 해결 위한 소스코드 변경 요약: n.. -
There is no getter for property named 'sql' There is no getter for property named 'sql'
에러와 오류에 지친 여러분께 심심한 위로의 뜻을 전합니다. 아울러 해당 포스팅은 개발 실력 향상을 위한 학습형 포스팅과는 성격이 다르다는 점 밝힙니다. 원인과 결과, 해당 오류의 해결을 위한 짤막한 글로 구성되어 있다는 것을 알려드리며, 모쪼록 이 페이지가 여러분의 마지막 검색이 되길 기원합니다. 에러문구 요약: mybatis로 sql문 만들기 복잡할 듯하여 String으로 sql문 완성 후 'sql'이라는 String 변수에 담긴 구문을 매퍼에 전달시키는 상황 요청 당시 소스코드(서비스, 매퍼, xml) 서비스 요약: DDL(create table) 구문 작성 매퍼 매퍼xml 리퀘스트 요약: 테이블 이름 wgtable로 create 요청 - 컬럼 2개 생성 (test1, test2) 컬럼 타입은 (va.. -
ManyRelatedManager object has no attribute ManyRelatedManager object has no attribute
에러와 오류에 지친 여러분께 심심한 위로의 뜻을 전합니다. 아울러 해당 포스팅은 개발 실력 향상을 위한 학습형 포스팅과는 성격이 다르다는 점 밝힙니다. 원인과 결과, 해당 오류의 해결을 위한 짤막한 글로 구성되어 있다는 것을 알려드리며, 모쪼록 이 페이지가 여러분의 마지막 검색이 되길 기원합니다. 에러 문구 many to many field를 적용한 테이블 요약: Actor클래스(actors테이블) 에서 many to many field를 걸어 movie를 정참조 foreign key를 이용하여 A테이블에서 B테이블을 정참조 여기에서 A테이블은 actors 테이블이고 B테이블은 movies테이블이다. 이해를 돕기 위한 Foreign key 테이블 요약: dogs테이블에서 foreign key로 owner..
Blog
-
백준 - 3190 뱀 (큐) 백준 - 3190 뱀 (큐)
참 오래 걸렸던 문제다.. 그렇게 어려운 문제는 아닌것같은데 아직 자료구조와 코드 구현에서 미숙하다는 것을 느꼈다. 일단 이 문제가 큐 자료구조를 이용해야 한다는 것을 알아야한다. 문제의 뱀 이라는 게임 내용을 보면 1초에 한번씩 뱀은 움직인다. 뱀은 움직일때 머리를 움직이고자 하는 칸으로 늘려서 이동한다. 그리고 다시 원래 있던 칸의 꼬리를 줄인다. 사과를 만나면 몸통 길이가 1칸 늘어난다. 어딘가에 넣고 다시 빼야 한다. 넣고, 빼는 형태로 문제를 풀어야 할때는 스택, 큐를 떠올려야 한다. 그럼 이 문제는 왜 큐를 사용해야 하는지 알아보자. 뱀의 이동 방식이 이렇기 때문에 큐를 이용해야 한다. 물론 리스트로 구현해도 문제를 풀수는 있다. pop(0)으로 꺼내면 되지만 이렇게 되면 시간복잡도가 O(n).. -
백준 - 2812 크게 만들기 (스택) 백준 - 2812 크게 만들기 (스택)
규칙을 생각해보자. 1924 라는 숫자가 주어졌을때 k개를 어떻게 지워야 가장 큰 수가 나올까? k개 만큼 지웠을때 가장 왼쪽에 있는 숫자가 주어진 숫자중에서 가장 큰 수이면 된다. 여기선 9가 가장 왼쪽에 오면된다. 그렇다면 9가 왼쪽에 오게 하려면 어떻게 해야 할까? 9가 위치한 왼쪽 인덱스와 비교했을때 9가 더 크면 왼쪽 인덱스는 지우고 9는 남겨둔다. 나머지 2와 4중에서 2를 지우려면 어떻게 해야 할까? 컴퓨터는 사람이 아니므로 딱 보고 2를 지울 수는 없다. 어떤 특정한 규칙을 코드화 해주어야 한다. 규칙화 해보자. 2와 4를 비교했을때 4가 더 큰 수 이므로 작은 수인 2를 지워주면 된다. 아! for문을 돌면서 인덱스가 자신의 왼쪽의 인덱스보다 크면 왼쪽 인덱스를 지우고 그렇지 않다면 그냥.. -
백준 - 10799 쇠막대기 (스택) 백준 - 10799 쇠막대기 (스택)
알고리즘 문제 풀이시 규칙을 찾는 습관을 들여보자. 쇠막대기는 레이져를 만나면 그 개수만큼 잘리고 총 개수에 더해진다. 쇠막대기의 시작은 '(' 쇠막대기의 끝은 ')' 레이져는 '()' 쇠막대기가 몇개인지 파악해야 한다. 레이져를 만나면 현재까지 '(' 로 표시된 쇠막대기 만큼의 개수가 추가된다. 쇠막대기가 몇개인지 파악해야 하므로 '(' 를 어딘가에 저장해야 한다. 쇠막대기는 항상 끝나는 지점 ')' 이 존재하는데 끝이나면 해당 쇠막대기는 저장되어있는 곳에서 제거 되야 한다. 어딘가에 저장해야 하고 제거 해야 한다면 stack과 queue를 떠올려야 한다. 쇠막대기가 제거 될때에는 저장되어있는 곳에서 가장 마지막에 저장된 '('가 제거 된다. (가장 인접한 '('가 방금 들어온 ')'의 한몸이므로) 가.. -
Travis를 이용한 CI/CD Travis를 이용한 CI/CD
(spring + vue3 + mysql + docker-compose + AWS 배포 + Travis CI/CD) 포스팅에 이은 심화과정입니다. Travis를 이용한 CI/CD 과정을 정리하였습니다. 아키텍쳐 1.Travis CI/CD 먼저 Travis 홈페이지에 접속하여 회원 가입 후 git 레포지토리와 연결을 한다. 프로젝트 루트 경로에 .travis.yml 파일을 생성한다. 다음과 같이 yml 파일을 작성한다. 간단하게 이렇게만 작성해도 main브랜치에 푸쉬만 되더라도 ./gradlew clean build 명령을 수행 하고 CI가 일어난다. 소스 코드 커밋 및 푸시 후 트레비스 대쉬보드에 접속해보면 방금 푸시한 커밋명이 보이고 CI 수행 로그가 뜨면서 프로젝트를 빌드한다. (이 과정은 시간이 꽤.. -
cannot open directory '/docker-entrypoint-initdb.d/': permission denied cannot open directory '/docker-entrypoint-initdb.d/': permission denied
에러와 오류에 지친 여러분께 심심한 위로의 뜻을 전합니다. 아울러 해당 포스팅은 개발실력 향상을 위한 학습형 포스팅과는 성격이 다르다는 점 밝힙니다. 원인과 결과, 해당 오류의 해결을 위한 짤막한 글로 구성되어 있다는 것을 알려드리며, 모쪼록 이 페이지가 여러분의 마지막 검색이 되길 기원합니다. 에러문구 cannot open directory '/docker-entrypoint-initdb.d/': Permission denied 요약: docker 이미지로 mysql 컨테이너 실행 시 실행 될 init 스크립트를 읽지 못하는 상황 (권한 문제인 것으로 보임) 시도1 - 도커 파일 수정 구글링 후 스택오버플로 등의 검색결과를 바탕으로 컨테이너 생성 후 몇가지 권한 부여하는 명령어 추가 (유저를 mysql..