html에 있는 엘리먼트를 조작하거나 찾을때 element가 반환될수도 있지만 잘못 이름작성시 null이 반환될 수도 있다. 이러한 이유로 계속해서 개발할 때 브라우저 콘솔에 계속 warning이 찍혔다.. 이러한 warning을 해결하기 위해서는 narrowing 작업을 통해 처리해줘야 한다. 1. 조건문을 활용한 narrowing작업 let 제목 = document.querySelector('#title'); if(제목!=null){ 제목.innerHTML = '반가워요' } 2. safe operator 연산자를 활용한 narrowing작업 let 제목 = document.querySelector('#title'); if(제목?.innerHTML!=undefined){ 제목.innerHTML = '..

movies.addAll(marvel); ArrayList 가 제공하는 api 메소드 중 addAll(Collection c) 가 있다. 인자로 Collection 객체를 받아 그 Collection 객체의 모든 아이템들을 추가하는것이다. StringBuilder 클래스의 insert 메소드가 있다. 이 메소드를 활용해서 문자열을 뒤에 추가하는 것이 아닌 앞으로 넣을 수 있다. sb.insert(0,">") 1000% 연산한 결과를 구할 땐 그냥 미리 각 피연산자에 1000%를 나눈다음 연산을해도 결과는 같다. 따라서, 입력을 받을 떄 바로 1000%를 해줘도 된다. 위 값은 뒤 3자리(752) 는 5232 * 1111 한것의 %1000 과 같다. for문 2개는 시간복잡도 O(n2) PriorityQu..
보통 PR 즉, Pull Request라는 말을 많이 사용했던 것 같다. 근데 최근에 MR이라는 용어도 많이 접하게 되었는데, 사실 두 용어 모두 메인 브렌치에 합치는 요청의 느낌으로만 알고 명확한 차이가 있는 지 궁금해져서 같이 토이프로젝트를 하는 친구에게 물어봤는데 그 친구도 잘 모르겠지만 아마 둘다 같은 의미 일 것이다? 라는 대답이였다. 뭔가 답변이 애매해서 검색을 해봤다.. 검색을 해봤는데 친구 말대로 현업에 쓰이는 용어의 의미는 일반적으로 같다가 결론이다. (결국 친구말이 맞았다!!) 보통 Github 에선 pull request / Gitlab 은 merge request 로 사용한다고 한다. 각 이유는 첫번째 액션이 Pull 이기 때문인 것과 다른 하나는 할당된 사람에게 요청된 최종 액션이..

String 과 StringBuffer, StringBuilder 의 가장 큰 차이점은 Immutable 속성이다. 빌더와 버퍼는 변경이 가능한 객체이지만 스트링은 불변(immutable)하다. 이 속성 때문에 String에 + 연산자를 사용하게 되면 시간복잡도가 기하급수적으로 늘게 된다. 밑에 제출이 String에 + 연산을 사용해서 출력한것이고 위에 제출이 StringBuilder만 이용해서 해결한 코드이다. 보이는 것처럼 실행시간이 엄청나게 차이가 난다.. String은 결국 참조 타입임에도 불구하고 직접적으로 new 연산자를 통해 객체를 생성에 메모리에 올려 사용하기보단 String s = "Hello" 와 같이 문자열 리터럴형태로 사용이 허용된다. 하지만 이 String 객체는 최초에 한번 생성..

Eclipse 환경에서 원격저장소에 있는 프로젝트를 clone한뒤 커밋후 다시 푸쉬해서 올리려는 작업을 하는데 계속해서 push to origin has encountered a problem ~~~~ can't connect to any repository(not authorized) ... 오류 가 발생했다.. 프로젝트도 다시 받아보고 내가 혹시 eclipse에 프로젝트를 가져올때 방법이 잘못됬나 해서 다시 해봤는데 역시 같은 오류가 계속 발생했고, 구글에 한 2-3페이지는 뒤졌다.. 결론은 Git의 Token Authentication 인증이였다. 최근부터 Github 에서 ID/PW 기반 Basic Authentication 인증을 막고, ID/ Personal Access Token 방식의 To..
replace 함수와 replace함수는 둘다 특정 문자열을 원하는 문자열로 바꿔주는 함수이다. 특히 해당 스트링의 값을 바꿔주는게 아니라 변경된 문자열 값을 리턴해주는 함수이기 때문에 s.replace("A","B"); 이렇게만 쓰면 소용이 없다. s= s.replace("A","B"); 이런식으로 메소드의 리턴값을 넣어줘야 한다. 이클립스에서 해당 메소드들의 API 문서를 참고하면 이렇다 String replace(CharSequnce target, CharSequence replacement) String replaceAll(String regex, String replacement) 따라서 replace는 첫번쨰 인자값으로 문자열이 들어가야만 한다. 하지만 replaceAll은 첫번째 인자값으로 ..
- Total
- Today
- Yesterday
- 부트스트랩 템플릿 사용시 충돌
- SQLD 후기
- 버팀목 국민은행
- 나머지연산 분배법칙
- #web /was 구분이유
- SSAFY 6기
- safe operator
- 왜 트랜스지방은 살 찜
- vue정리
- Property or method "" is not defined
- 스프링 동작흐름 #ioc #di #dispatcherservlet
- 알고리즘 나머지연산
- vue 특징
- gc 기본 동작 원리
- Prim vs Dijkstra
- Optinal Chaining
- 스프링 기본 구조
- 퍼블리싱 #앱에서 DB바로 안붙이는 이유
- 프로시저 #배치 #스케쥴러 #잡 #바인딩변수
- JAVA설치 #JDK #JRE
- java 김영한 강의 #2chapter
- 스프링 동작흐름
- 청년 버팀목 대출
- Java
- java gc
- gc란 뭘까
- 원자 원소 분자 차이점
- git branch strategy
- Netlify #CICD
- java garbage collector 기본
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |