지금 시대는 '관계형 데이터베이스(Oracle, MySql)'을 많이 사용한다. 즉, 객체를 관계형 DB에 넣어 관리해야하는데, 여기서 우리는 SQL 굴레에 빠지게 된다. 🤔 그럼 SQL의 문제점은 무엇일까? 1. 무한 반복, 지루한 코드 - crud, 자바 -> 객체, 객체 -> 자바로 무한히 반복해야한다. 결국 관계형 데이터베이스를 사용하면 sql에 의존할 수밖에 없다. 객체와 관계형 데이터베이스의 차이점은 다음과 같다. 1. 상속, 2. 연관관계, 3. 데이터 타입, 4. 데이터 식별 방법 위의 문제를 해결하기 위해서 개발자가 'SQL 매퍼' 역할을 수행해야 한다. 계층형 아키텍처 진정한 의미의 계층 분할이 어렵다. 즉, 객체답게 모델링 할수록 매핑 작업만 늘어난다. 객체를 자바 컬렉션에 저장 하듯..
🤔 Stack ✔ LIFO(Last In First Out) 마지막에 저장된 것을 먼저 꺼냄. 저장(push), 추출(pop) 🤔 Queue ✔ FIFO(First In First Out) 제일 먼저 저장한 것을 먼저 꺼냄. 따라서 LinkedList가 적합함!! 저장(offer), 추출(poll) 다음의 예제를 통해 스택과 큐에 대해 이해하자. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Ex11_4 { static Queue q = new LinkedList(); static final int MAX_SIZE = 5; // Queue에 최대 5개까지만 저장 public static ..
해커랭크 Day 28 챌린지를 시작해보자. 😊 오늘은 Regular Expression에 대해 학습했다. 정규 표현식에 대해 잘 몰랐었기 때문에 코드 작성에도 어려움을 겪었고, 추후에 정규 표현식에 대한 포스팅도 작성하려고 한다. 오늘의 소스코드를 살펴보자. 👇👇 import java.util.HashSet; import java.util.Set; public class User { String username; String password; int age; Set orderIDs; public User(String customUserName, String customPassword, int customAge, Set orderIDs) { this.username = customUserName; this..
해커랭크 Day 25 챌린지를 시작해보자. 😊 (필자가 day 카운트를 헷갈려서 day 25 문제를 뛰어넘고 포스팅을 진행했다. 그래서 오늘은 day 25 포스팅을 진행해보려고 한다. day 26 포스팅은 이미 진행했으므로 내일은 day 27을 포스팅한다.) 오늘은 Running TIme & Complexity(시간 복잡도)에 대해 학습했다. 바로 소스코드를 살펴보자. 👇👇 import java.util.HashMap; public class Complexity { public static int findNumsOfRepetitions(String s, char c) { // Linear time; O(n) time int sum = 0; for(int i=0; i
해커랭크 Day 26 챌린지를 시작해보자. 😊 오늘은 UnitTest와 Test case 에 대해 알아보았다. 또한 오늘은 hackerrank challenges day22에서 진행했던 Tree 코드가 필요하다. 우선 전체 소스코드를 살펴보자. 👇👇 (Day 22에 사용했던 소스코드도 포함되어 있다.) public class EmptyBST implements Tree { public EmptyBST() { } @Override public boolean isEmpty() { return true; } @Override public int cardinality() { return 0; } @Override public boolean member(D elt) { return false; } @Overrid..
해커랭크 Day 23 챌린지를 시작해보자. 😊 오늘은 TicTacToe 게임을 만들어 보았다. TicTacToe 게임을 모르는 독자들을 위해 잠시 게임을 설명한다. 🤔 TicTacToe 게임이란? 오목과 아주 유사한 형태인 추상전략 보드 게임으로 '삼목'이라고 불리기도 한다. 판 크기틑 3x3 정사각형이고 2인 전용 게임이다. 🤔 TicTacToe 게임 하는 방법 1. 종이 위에 가로줄 2줄 세로줄 2줄을 그린다. 2. 9칸 위에 1P는 O, 2P는 X를 번갈아가며 그린다. 3. 먼저 O나 X를 3개가 직선으로 이어지게 만드는 사람이 승리한다. 나무위키에는 위와 같이 설명되어 있다. 다음의 링크를 클릭하면 나무위키 사이트로 이동하며 실제 게임을 시뮬레이션 하는 영상이 있으니 위의 설명으로 이해가 안된다면..
해커랭크 Day 22 챌린지를 시작해보자. 😊 오늘은 Binary Serarch Tree(이진 탐색 트리)에 대해 학습했다. 이진 탐색 트리에 대해 잘 모르는 독자들은 필자의 이전 포스팅에서 자세히 다루고 있으니 참고하길 바란다. (포스팅 보러 가기) 필자도 이진 탐색 트리의 개념이 헷갈려 강의를 보고 이해가 되지 않아 위 포스팅을 작성하면서 공부하고나니 코드 이해가 훨씬 쉬웠다!! 그럼 소스코드를 확인해보자. public interface Tree { public boolean isEmpty(); public int cardinality(); public boolean member(D elt); public NonEmptyBST add(D elt); } Tree interface public class..
🤔 LinkedList 배열의 장단점 ✅ 장점 ✔ 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 시간(접근시간, access time)이 짧다. ✅ 단점 ✔ 크기를 변경할 수 없다. 크기를 변경해야 할 경우 새로운 배열을 생성 후 데이터를 복사해야 함. 크기 변경을 피하기 위해 충분히 큰 배열을 생성하면, 메모리가 낭비됨. ✔ 비순차적인(중간에 데이터 넣는 것) 데이터의 추가, 삭제에 시간이 많이 걸림. 데이터를 추가하거나 삭제하기 위해 다른 데이터를 옮겨야 함. 그러나 순차적인 데이터 추가(끝에 추가)와 삭제(끝에서 삭제)는 빠르다. 🤔 LinkedList - 배열의 단점을 보완 ✔ 배열과 달리 LinkedList는 불연속적으로 존재하는 데이터를 연결(link) ✔ 데이터의 삭제 : 단 한 번의 참조..
Hackerrank challenges Day 10 을 진행해보자. 오늘은 강의 포스팅은 진행하지 않겠다! 강의를 수강하지 않은 것은 아니나 강의 내용이 2진수의 설명과 2의 보수 진법?(1의 보수, 2의 보수,,)에 해당하는 설명이 진행되어 며칠 전 cs50 강의를 들으며 2진수에 대해 학습했기 때문에 (학교 수업, 교양 수업 등 2진수는 이미 많이 알고있었기 때문에) 따로 포스팅하지 않으려 한다. 그래서 바로 코드 리뷰를 진행하겠다. 위에서 설명했다 싶이 2진수에 관한 문제였다. 10진수의 숫자가 주어지면 2진수로 그 수를 표현했을 때 연속되는 1의 갯수를 출력하는 문제였다. 가장 많이 연속된 1의 갯수를 출력하면 되는 문제였는데 필자의 경우 처음에 조금 복잡하게 생각했다. 입력받은 10진수를 2진수..
지난 포스팅에 이어 이번 포스팅에서는 hackerrank challenges Day 9 자바 코드 리뷰를 진행해보자. 오늘 문제는 강의를 제대로 들었다면 바로 풀 수 있는 문제였다. 강의에서 소스 코드가 주어졌다고 해도 틀린말이 아니기 때문!! 예전에 백준에서 재귀 factorial문제를 못풀어 많이 방황했던 기억이 난다. 아무튼! 일단 오늘의 코드를 살펴보자. import java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import java.util.function.*; import java.util.regex.*; import..
공지사항 필독 ! 📢 [정보처리 산업기사] 📢 정보처리 산업기사 카테고리 공지(필독) 오늘은 필자의 정보처리 산업기사 카테고리의 공지사항을 정리해보려고 한다. 우선 최근 필자는 정보처리 산업기사 자격증 준비에 힘을 쏟고있고, 필자의 공부 과정을 공유하기 위해 공부한 내 dandev.tistory.com 정보처리 산업기사를 공부하며 객체지향 프로그래밍 언어에 대해 학습한 내용을 정리한다. 정보처리 산업기사를 준비하는 사람이 아니더라도 도움될 내용이니 참고하자. 바로 본론으로 들어가보자!! 😆 객체지향 프로그래밍 언어 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 객체들을 조립해 프로그램을 작성하는 기법 객체지향 프로그래밍 언어의 종류 JAVA 분산 네트워크 환경에 적용 가능 멀티스레드 기능을 ..
- Total
- Today
- Yesterday
- 정보처리 산업기사
- 22 정보처리산업기사
- stack
- hackerrank challenges
- 정보처리산업기사
- 챌린지
- 해커랭크 자바 챌린지
- 백준
- 그리디
- 소스코드
- JPA
- BAEKJOON
- 디버깅
- 해커랭크 자바
- 강의
- challenges
- 자바의 정석
- 코드
- hackerrank
- LinkedList
- Java
- 자바
- 해커랭크 챌린지
- 정보처리산업기사 공부법
- 풀이
- 22 정보처리 산업기사
- 해커랭크
- ORM
- queue
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |