IT 54

InvalidDataAccessApiUsageException: id to load is required for loading에러 해결

InvalidDataAccessApiUsageException: id to load is required for loading에러 해결 이런식으로 entity 매니저와 관련된 에러가 발생 코드 원인 Id 부분의 값이 load되지 않아서 발생한 에러임 Book Class의 id가 @GeneratedValue로 되어 있기 때문에 id를 생성하려면 엔티티를 DB에 저장해야 하는데 JPA에서 persist를 하지 않았기 때문 해결 코드 em.persist 로 DB에 저장해 Id를 받을수 있게 하여 해결

IT 2022.05.27

파이썬 2차원 배열 선언 이해하기 (깊은 복사 얕은 복사)

array = [[0] * 3 for _ in range(3)] array = [[0] * 3] * 3 위의 코드를 출력해보면 겉으로 보기엔 똑같습니다. 하지만 array[0][1] = 1을 넣고 출력해보면 결과가 다릅니다. 왜 이런 결과가 나오는지는 immutable 객체와 mutable 객체로 설명할 수 있는데, mutable - 변경 가능 객체 immutable - 변경 불가능 객체 mutable 객체에는 list,set,dictionary 정도가 있고 immutable 객체에는 int, float, tuple, str, bool 등이 있습니다. immutable 객체는 깊은 복사를 하고 mutable 객체는 얕은 복사를 합니다. array = [[0] * 3] * 3 array = [[0] * 3..

IT 2022.04.27

Android fork (개인)에서 팀 브랜치로 pull & request 하는 방법

fork (개인)에서 팀 브랜치로 pull & request 하는 방법 에 대해 알아보겠습니다. Upstream으로 팀 브랜치와 연결하기 1. fork를 뜨면 본인의 깃허브에 브랜치가 하나 만들어지면서 다음과 같이 local 과 origin이 생깁니다. terminal에서 git remote add upstream 팀브런치주소를 입력하여 팀의 브랜치를 연동합니다. 연동하게 되면 다음 사진처럼 팀의 브런치가 연결됩니다. 팀브랜치에 Pull & Request 하는 방법 저는 현재 local의 release 브랜치에 있습니다. 1. 여기에 uptream 의 realease 브랜치를 pull 받아 팀 브랜치와 싱크를 맞춰줍니다. 2. 수정한 내 파트를 git add . / git add -A 를 해 트래킹을 할..

IT/git 사용법 2022.04.05

좋은 객체 지향 프로그래밍이란(feat.배달의 민족 김영한)

안드로이드 어플을 자바로 개발하기도 해보고, 백엔드 공부를 위해 자바 스프링을 잠깐 다뤄도 보았다. 그러나 아직 객체 지향이 정확히 무엇인지.. 명확한 느낌이 오지 않는 상태에서 이것저것 공부해보다가 찾게 된 김영한님의 유투브 영상. 이 영상을 보고 오늘 다시 객체 지향이란 무엇인지 정리해보아야겠다는 생각이 들었다. 객체 지향 프로그래밍 - 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다.(협력) -객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용 됨. 다형성 역할과 구현으로 세상을 구분 K3,아반떼,테슬..

IT 2022.03.24

git 특정 파일만 commit push 하는 방법(LF에러 해결)

git 특정파일만 commit push 하는 방법 git add . (X) -> git add 파일경로 ex) git add java/BJ2557 문제 LF will be replaced by CRLF in ~~ 에러 Eclipse를 통해 java 파일을 만들어 알고리즘 문제를 풀었다. 푼 알고리즘 문제(BJ2557)만 연결된 깃허브에 올리려고 하였는데,이런식으로 warning이 났다. 문제해결과정 LF(Line-Feed) 커서는 그 자리에 그대로 둔 상황에서 종이만 한 줄 올려 줄을 바꾸는 동작 1.원인 OS마다 줄 바꿈에 대한 문자열이 다르기 때문에 git에서 어느 쪽을 선택해야 할지 경고 메시지를 띄워 준 것 2.해결방법 window, dos 명령어 git config --global core.au..

IT/git 사용법 2022.03.04

알고리즘 합병 정렬(merge sort 공부 정리) 백준 2751번

#수 정렬하기2 #합병 정렬 def mergemerge(arr): if len(arr) 2^0 순으로 줄어들어 순환 호출의 깊이가 3임을 알 수 있다. 이것을 일반화하면 n=2^k의 경우, k(k=log₂n)임을 알 수 있다. k=log₂n 각 합병 단계의 비교 연산 크기 1인 부분 배열 2개를 합병하는 데는 최대 2번의 비교 연산이 필요하고, 부분 배열의 쌍이 4개이므로 24=8번의 비교 연산이 필요하다. 다음 단계에서는 크기 2인 부분 배열 2개를 합병하는 데 최대 4번의 비교 연산이 필요하고, 부분 배열의 쌍이 2개이므로 42=8번의 비교 연산이 필요하다. 마지막 단계에서는 크기 4인 부분 배열 2개를 합병하는 데는 최대 8번의 비교 연산이 필요하고, 부분 배열의 쌍이 1개이므로 8*1=8번의 비교..

IT 2022.02.26

시간복잡도 개념 정리

시간복잡도 -> 문제를 해결하는데 걸리는 시간과 입력의 함수 관계 시간복잡도는 주로 빅-오 표기법을 사용하여 나타내며, 이 빅-오 표기법은 계수와 낮은 차수의 항을 제외시키는 방법 예시로서, 만약 크기 n의 모든 입력에 대한 알고리즘에 필요한 시간이 최대 (어떤 n0보다 크지 않은 모든 n에 대하여) 5n3 + 3n의 식을 가진다면, 이 알고리즘의 점근적 시간 복잡도는 O(n3) 위와 같은 별찍기 문제 알고리즘의 시간복잡도는 아래와 같습니다. 시간복잡도 O(n²)인 정렬 알고리즘으로 풀 수 있는 문제.(ex)삽입 정렬, 거품 정렬) https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의..

IT 2022.02.25

[git] commit 적용 안됨 ( commmit author 오류 해결)

commit 적용 안됨 ( commmit author 오류 해결) 분명히 저 날에 push를 했는데 commit이 적용되지 않은 문제가 발생하였습니다. 커밋로그를 보니 이름은 같은데, 아이콘 모양이 달랐습니다. 저는 저 push부분을 한번 바꿔보겠습니다. git -reflog 이 코드를 입력하면 지금까지 commit한 것들을 볼 수 있습니다. 1)rebase하기 push라는 이름의 커밋 직전의 코드로 rebase를 합니다. 저는 직전의 commit이 'f9a3d79'이므로 다음과 같이 입력해주었습니다. 엔터를 치면 다음과 같이 나오는데요 Insert를 눌러 편집모드로 들어간뒤 pick 이라고 되있는 부분을 edit으로 변경해줍니다. 2)git 코드 입력 :wq를 통해 편집화면을 나와준 뒤 다음과 같은 코..

IT/git 사용법 2021.12.02

Error: Permission denied (publickey) 해결 방법

문제상황 안드로이드 스튜디오를 github에 연결하고 commit && push 해주었으나 Push failed 에러 발생 이유 server에서 연결을 거부했기 때문이라고 github설명에 나와있음 해결 SSH key가 없어서 server에서 연결을 거부한 것이니 SSH key를 발급받아 서버에 연결해주면 된다. 1.SSH key 만들기 ssh-keygen -t rsa -C "본인의 github_email" 이런 식으로 cmd 창에 코드를 치고 Enter를 계속 누르면 Your public key 가 id_rsa.pub에 저장되었다고 나온다. 2.id_rsa.pub에서 키 복사하기 3)github 에 key 등록하기 SSSH and GPG keys -> New SSH key ->Add SSH key 3)..

IT/git 사용법 2021.10.10