본문 바로가기

분류 전체보기

(21)
[JAVA]비선형 자료구조, 선형자료구조, 이진트리(Binary tree), preorder, inorder, postorder, levelorder, 비선형자료구조 공부법 자료구조란?(Data Structure) -자료를 효율적으로 관리하기 위한 구조 (여기서 관리란 저장, 삭제, 탐색 등을 말함) -알고리즘과 밀접한 관계에 있다. 비선형 vs 선형 자료구조 선형 자료구조 비선형 자료구조 자료에 순서가 있다.(set, Map은 명시적인 순서x) 자료에 순서가 없다. 순서를 중요시 하지 않는 자료구조여도, 자연스럽게 읽는 순서(natural order)가 있다. 단순히 자료를 한번 순회하는 데에도 방법론이 필요하다. (DFS, BFS가 많이 쓰인다.) *선형 자료구조: -배열 -연결리스트 -스택, 큐, 데크 -해시 테이블 *비선형 자료구조: -트리 -그래프 -힙/우선순위 큐 -트라이 *트리: -루트 노드를 시작으로, 뻗어 나가는 자료구조 -하나의 노드에서 다른 노드로 이동하..
앞으로의 백엔드 공부계획(feat.현실적인 비전공자의 백엔드 공부법) 저는 비전공자이며 백엔드 공부는 처음이기에, 두서없는 점 참고바랍니다'ㅅ'.. (Feat. zero base) 백엔드 공부를 위해 제일 먼저 알아야 할 것은 바로 컴퓨터 공학 기초 이론이라고 한다. 백엔드를 이해하기 위해선 흔히 말하는 컴퓨터 공학 지식을 이해하고 있는 것이 중요하다. 컴퓨터 공학 지식은 코딩을 잘하기 위해 필요한 것이 아닌 문제가 생겼을 때 이 문제를 해결하기 위해 필요한 것이다. 컴퓨터 공학 지식에 더해 프로그래밍 기초, 데이터 구조 및 알고리즘, 데이터베이스, 서버 측 개발 등 기본기가 탄탄해야 한다. 프로그래밍 언어나 개발에 필요한 지식의 기본은 컴퓨터 공학, CS이다. 이런 기초 지식이 있어야 문제가 일어났을 때 트러블 슈팅에도 도움이 된다. 데이터베이스의 원리나 엔진, 네트워크..
[JAVA]선형자료구조 Stack, Arraylist를 통해 Stack 구현하기, Stack 연산 스택(stack) 후입선출(Last in First Out) 자료구조 - 마지막에 들어온 데이터가 먼저 나가는 구조 데이터가 입력된 순서의 역순으로 처리되어야 할 때 사용 ex. 함수 콜 스택, 수식 계산, 인터럽트 처리 등 기본구조 기본연산 -데이터 추가(Push): 스택의 가장 마지막 위치에 데이터 추가 -데이터 꺼내기(Pop): ArrayList를 통해 직접 스택 구현하기: import java.util.ArrayList; class myStack1{ ArrayList list; myStack1(){ this.list = new ArrayList(); } public boolean isEmpty(){ if(this.list.size() ==0){ return true; }else{ return fa..
백엔드 커리어 로드맵(feat. 나는 어떤 개발자가 되고 싶은가!) 현재, 저는 현재 언어배우기 단계를 수행 중 입니다. JAVA라는 언어에 대한 깊은 이해를 위해 공부 중입니다. 현직자들은 “코드에 대한 이해”가 가장 중요하다 답했습니다. 직접 코드를 작성해보며 체화하는 것, 현재 너무 더디고 어렵지만 제일 중요한 단계인 만큼 견뎌내어 코드에 대한 이해를 이루고 싶습니다. 저는 한 몫을 하는 개발자가 되고 싶습니다. 꾸준히 공부하며 성장하는 개발자가 되고 싶습니다. 이를 위해서 소통하며 협업하는 태도를 갖출 것입니다.
프론트엔드와 백엔드 차이 + 내가 백엔드 개발자가 되고 싶은 이유 프론트엔드 우리 눈에 보이는 영역을 개발하는 일. 웹사이트 내 '이 화면'처럼 사용자가 볼 수 있는 화면을 구성합니다. 직접적으로 이용자들의 눈에 보이는 영역을 개발하기에 사용하기 쉽고 사용자의 경험에 맞춰 서비스를 개발해야 많은 사용자들이 사용하기 때문에 최적의 인터페이스를 갖추는 것이 가장 중요합니다. 프론트엔드 개발을 위해서는 어떤 것이 필요할까? HTML, CSS, JavaScript 프론트엔드를 개발하기 위해선 위의 3가지 언어를 모두 반드시 알아야 합니다. 백엔드 우리 눈에 보이지 않는 뒷단을 개발하는 일. 사용자가 볼 수 없는 환경을 구성하는 영역을 뜻합니다. 사용자가 원하는 정보를 제공할 수 있게 데이터를 저장하고 관리하거나, 서버가 터지지 않게 운영하는 일을 합니다. 즉, 프론트엔드에 있..
[JAVA]상속 상속(Inheritance) 기존 클래스에 기능 추가 및 재정의하여 새로운 클래스를 정의 -부모 클래스: 상속 대상이 되는 기존 클래스(상위 클랙스, 기초 클래스) -자식 클래스: 기존 클래스를 상속하는 클래스(하위 클래스, 파생 클래스) *상속의 특징: -다중 상속 불가능 - private, default 멤버는 자식 클래스에서 접근 불가 ex. class 자식클래스명 extends 부모클래스명{ 필드; //-> 생성자 메소드; ... } super, super() -super: 부모 클래스와 자식 클래스의 멤버 이름이 같을 때 구분하는 키워드 -super(): 부모클래스의 생성자 호출 오버라이딩(overriding) 부모 클래스의 메소드를 자식 클래스에서 재정의 *오버라이딩 조건: -메소드의 선언부는..
[JAVA] 클래스와 객체 클래스(class) 객체(사물, 실체)를 정의하는 설계도, 붕어빵 틀, 레시피로 비유된다. 객체, 인스턴스 객체(object): 실체 인스턴스(instance): 클래스와 객체의 관계 클래스로부터 객체를 선언(인스턴스화) 어떤 객체는 어떤 클래스의 인스턴스 -클래스 사용: 객체 변수와 메소드로 이루어짐 ex. public class 클래스명{ //객체 변수 //메소드 //+접근제어자 //+static } 클래스명 객체명 = new 클래스명(); -생성자(constructor): 객체가 생성될 때 자동으로 호출됨. -생성자 규칙: 클래스명과 이름 맞추기 리턴 타입 없음 public class 클래스명{ 클래스명(){} // 즉, static 변수나 메소드는 공유되는 특성을 가짐 *static 클래스 변수:..
[JAVA] 다차원 배열 - 이차원 배열의 생성 방법: int[][] myArray = {{1,2,3},{4,5,6}}; --> 초기화 자료 int[][] myArray2 = new int[2][3]; 행 열 ex. int[][] testArray1 = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}; for (int i = 0; i < testArray1.length; i++) { for (int j = 0; j < testArray1[i].length; j++) { testArray1[i][j] = 1; if (i == j) { testArray1[i][j] = 10; } }} for (int[] itemRow : testArray1) { for (int itemCol : itemRow) { System.out...