일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- import안될때
- Ajax
- EC@
- 서블릿용어
- 게시판댓글
- 자료구조
- JDBC
- 스토리지기본
- git
- 서버기본
- jdbc연결안됨
- api문서만들기
- 크리스탈레포트이미지
- 크리스탈리포트이미지삽입
- 크리스탈리포트이미지
- IT기본지식
- 이미지누끼
- 크리스탈레포트누끼
- 오라클오류
- @RunWith
- lombok
- 추상클래스
- fcmwebpush
- 크리스탈레포트그림
- 롬복
- RequestBody
- ResponseBody
- openaddressing
- 타임존
- 타임존설정
- Today
- Total
목록분류 전체보기 (94)
엠마의 개발공부일지
계층적 자료구조(트리 / 수직적) ↔ 선형적 자료구조(배열, 링크드리스트 / 수평적) 링크드리스트와 같이 노드에 값을 저장(하위관계 가르키는 레퍼런스를 갖음) 자식노드를 화살표로 가르킴 root노드로부터 시작(하위 어디든갈 수 있음) 트리의 활용 : 다양한 추상자료형 구현가능 이진트리 만들기 0. 노드클래스 생성 class Node: """이진 트리 노드 클래스""" def __init__(self, data): self.data = data self.left_child = None self.right_child = None 1. 노드인스턴스 생성(root / 그 이외) 👉 root_node = Node("A") 2. 노드인스턴스 연결(root부터 left/right 나누어서 모두 언급해준다) # 노드 ..
기능 vs 구현 기능 : 연산이 "무엇"을 하는지 구현 : 연산의 기능을 "어떻게"하는지 추상화 : 복잡한 구현을 몰라도, 기능만 알면 사용가능하게 하는것(ex-python) 추상자료형(기능) vs 자료구조(구현) 추상자료형 : 자료구조를 추상화 함, 데이터를 저장/사용할때 기능만 생각함 자료구조 : 연산을 "어떻게"처리할지 구현까지 포함한 내용 📌 리스트라는 추상자료형을 동적배열 or 링크드리스트로 구현 ❗ 추상자료형을 생각하고 -> 필요할때 자료구조를 생각해서 코딩한다 추상자료형(기능 : 무엇을) 자료구조(구현 : 어떻게) 추상자료형1 리스트 #파이썬 리스트 생성(기능만 알고 사용할 수 있는 언어 : 파이썬) trending = [] #특정 위치에 데이터 삽입 trending.insert(0, "라이..
테스트구동시 나타나는 오류 Execution failed for task ':test'. No tests found for given includes : ~~~~ 현상 테스트버튼 누를때, 테스트메서드명이 한글일 경우 표시안됨 아래와 같이 오류남 해결방법 ctrl+alt+s를 눌러 settings에 들어가서 아래와 같이 테스트구동을 Gradle -> intellij로 바꿔주면 된다
Key-value데이터 순서와 상관없이, key값을 검색하여 그 값을 찾도록 하는 자료구조 배열의 장점은 key(인덱스)를 이용해 O(n)으로 배열에 접근할 수 있다는것 Direct Access Table : 배열 인덱스를 key로 저장해서 값을 가져오는것 장점 : O(1)으로 빠르게 접근해서 데이터를 주고받고 할 수 있다 단점 : 인덱스를 key로 지정해서 배열화 하면 너무 큰 메모리를 낭비할 수 있다 해시테이블 - 고정된 크기의 배열을 만들고 - 해시함수 이용하여 key를 원하는 범위의 자연수로 바꾼다 - 해시함수 결과 값 인덱스에 key-value값을 저장한다 해시테이블의 충돌 해시함수를 통해 key값을 받았는데, 다른 key값과 동일해서, 배열에서 충돌함 한 인덱스에서 충동했을때에는 chainin..
LinkedList(연결리스트) 특징 노드객체 : data-next로 구성 헤드노드만 있으면 나머지는 순서있게 구성가능(실제로 메모리에는 여기저기 흩어있다) 동적배열보다 복잡하다(하지만 배열의 단점을 보완할 수 있다) 장점 개별적으로 위치하고 있는 원소의 주소를 연결하여, 하나의 자료구조를 이룬다 링크를 통해 원소에 접근하므로, 물리적인 순서를 맞추기위한 작업이 필요없다. 배열과 달리 크기가 정해진게 아니고, 동적으로 조정할 수 있기때문에 메모리의 효율적사용이 가능하다. 노드객체만들기 1. 클래스만들기(노드를 만드는 틀) 2. 노드연결 class Node: """링크드 리스트 노드 클래스""" def __init__(self, data); self.data = data # 노드가 저장할 데이터 self...
배열 값을 저장하는 것이 아닌, 래퍼런스(주소)를 저장 그렇기때문에 큰값을 저장해도 무방(주소만 저장하기때문) 배열접근(주소를 알고있음) 저장 : 연속적으로 저장됨 O(1) 가져오기 : 인덱스값으로 계산하여 가져옴( O(1)로 가져옴_메모리의 특성을 이용) 🙋♀️ 휘발성 정보인 RAM에 값을 저장하고, 가져온다. 그 속도가 빠른이유는 주소를 알고 있기 때문 배열탐색(주소모름) 선형탐색 : 순서대로 확인 O(n) 배열종류 (정적)배열 : 크기가 정해진배열, 수정불가 ex) C언어 배열 동적배열 : Dynamic Array 크기변경가능, 수정가능 ex) Python ➕동적배열의 추가방법[배열이 모두 차면 알아서 늘려줌] 2배크기 자리마련 -> 기존데이터를 복사 후 추가 ⏰시간복잡도 : 빈공간있을때(최고) ..
스토리지 vs 메모리 스토리지(영구저장) : 언제 사용할지 모르는 파일저장 장점 : 용량이 크고, 컴퓨터를 꺼도 저장된다 단점 : 데이터를 저장하고 받아오는데 오래걸린다 ⭐메모리(임시저장)_RAM 장점 : 데이터를 저장하고 받는시간이 빠르다 단점 : 컴퓨터를 끄면 사라진다 ✔ 예시 : 영화를 본다면 스토리지에 저장된영화를 메모리로 가져와서 상영(금방 받아오기때문) RAM(Random Access Memory) 임의접근메모리(휘발성) 저장위치(주소)만 알면 접근시간이 일정하다 (↔순차접근) 자료구조는 데이터를 저장하고 찾는방법, 이 모든것은 임의접근함 Reference 데이터에 접근하게 해주는 값 "주소"보다 포괄적인 개념 (but, 자료구조에서는 주소=레퍼런스)
컴파일러와 인터프리터 프로그래밍 언어의 종류에 따른 실행방식 차이 컴파일러(=번역기) 사람이 작성한 코드를, 컴퓨터가 이해할수있는 Machine code(0,1로 구성)로 변환하는 것 장점 : 다른 컴퓨터에서는 Machine code만 있으면 프로그램 가동 가능 / 실행속도가 빠르다 / 코드유출X 단점 : 수정해야할땐 "수정 -> 컴파일 -> 실행" 과정을 거쳐야 함(빠른 개발이 불가), 용량이 크다 ex) C, C++ (저수준언어) 인터프리터 코드를 한줄씩 즉흥적으로 실행되는것 장점 : 코드수정 후 즉시실행, 단점 : 코드유출 가능, 용량이작다 ex) Python, Ruby (고수준언어) 운영체제 OS(Operating System) 하드웨어 위에서 동작가능하며, 앱 어플리케이션을 사용하기위해 깔려있어..