본문 바로가기

728x90
반응형

전체 글

[IT 면접 준비] JAVA의 특징에 대해서 말해 보시오. 자바는 굉장히 대표적인 객체지향 프로그래밍언어 중 하나입니다. 자바 최초개발자는 '자바의 아버지'라고 불리우는 제임스 아서 고슬링이며, 국적은 캐나다로, 아마존 웹 서비스, 오라클, 구글, 썬 마이크로시스템즈 등에서 근무했다고 합니다. 자바 커피를 하루에 10잔 이상 마시는 자바 커피 덕후여서, 자바(Java)라는 명칭은 인도네시아 자바섬에서 유래되었다고 하네요. 목차 1) 객체 지향 프로그래밍(OOP) 2) 자동 메모리 관리(gc) 3) 운영체제에 독립적 4) 멀티쓰레드 지원 5) 동적 로딩 지원 📌 1. OOP(객체지향언어프로그래밍) 자바는 객체 지향 프로그래밍(Object Oriented Programming)입니다. 객체지향프로그래밍의 대표적 특징에는 상속,캡슐화(은닉),다형성,추상화가 있습니다... 더보기
[IT 면접준비] Back-End 개발자의 면접 준비과정 앞으로 이직을 준비하면서 면접에서 겪었던 내용들과 질문들을 위주로 블로그를 작성해 보려합니다. 저는 Back-End 개발자로 5년차이고 언어는 JAVA를 사용 중에 있습니다. 이점 참고하여 앞으로 작성되는 내용들을 참고하시고 보시면 좋을 것같습니다. 현재 3번째 회사에 이직 한 상태이며, 앞으로 이직이 있을 상황을 대비하여 적는 내용이므로 저와 비슷한 사람들에게 도움이 되었으면 좋겠습니다. 느낀점. 1. 개발자 부족 현상이라고 난리라고 하지만 회사에서는 자신들이 원하는 정도의 수준이 정해져 있기 때문에 생각보다 연봉이 많이 짜다. 이점은 다른 비개발자분들이 개발자들은 돈을 많이 받는 다는 화상에서 나오셨으면 좋겠습니다. 2. 화상 채팅으로 진행하는 회사들이 많으며, 화상채팅시 무개념 적인 발언들을 하는 .. 더보기
[TDD] TDD(Test-Driven-Development) 방법론 TDD(Test-Driven-Development) 방법론에 대해서 파헤쳐보자! ❓ TDD가 무엇입니까? - TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계를 중요시한다. 이 기법을 개발했거나 '재발견' 한 것으로 인정되는 Kent Beck은 2003년에 TDD가 단순한 설계를 장려하고 자신감을 불어넣어 준다고 말하였다. eXtream Program.. 더보기
[Algorithm] 백트래킹 백트래킹 이란? 백트래킹은 알고리즘 기법 중 하나로, 재귀적으로 문제를 하나씩 풀어나가되 현재 재귀를 통해 확인 중인 상태(노드)가 제한 조건에 위배되는지(유망하지 않은지) 판단하고 그러한 경우 해당 상태(노드)를 제외하고 다음 단계로 나아가는 방식이다. 여기서 알아둘 것은 특정 상태(노드)를 제외한다는 것이다. 백트래킹은 현재 상태(노드)에서 다음 상태(노드)로 나아갈 수 있는 모든 경우를 찾되, 그 중 유망하지 않다면 현재에서 더 이상 나아가지 않고 이전의 상태(노드)로 돌아가 다음 상태(노드)를 검사한다. 여기서 더 이상 탐색할 필요가 없는(유망하지 않은) 상태(노드)를 제외하는 것을 가지치기(pruning)라고도 한다. 즉, 이 방법을 통해 우리는 모든 경우의 수를 체크 하지 않고 필요한 것만 체.. 더보기
[Algorithm] 벨만포드(BellmanFord) 알고리즘 JAVA 개념 가중 유향 그래프에서 최단 경로를 구하는 알고리즘입니다. 벨만 포드 알고리즘은 동작원리는 다익스트라(Dijkstra)와 유사합니다. 차이점은 벨만 포드는 음수 가중치가 존재하는 경우에도 적용할 수 있으며 시간 복잡도가 O(VE) 입니다. (V: 정점 개수, E: 간선 개수) 다익스트라 알고리즘에서 우선순위 큐를 이용한 방식으로 시간구현하면 시간 복잡도 O(VlogV)이므로 벨만 포드 알고리즘보다 실행속도가 빠릅니다. 다익스트라 알고리즘의 한계 정점 A → C로 갈 때, 두 가지 경로가 존재합니다. ① A → B → C cost: 7 + (-4) = 3 ② A → C cost: 5 결과적으로는 ① 경로가 최단 거리 비용이지만, 다익스트라 알고리즘에서는 정점 [A]와 연결된 정점 [B], [C] 중에서.. 더보기
[Algorithm] Hash란? 해시 (Hash) 해시란 데이터를 다루는 기법 중에 하나로 검색과 저장이 아주 빠르게 진행됩니다! 아주 빠르게 진행될 수 있는 이유는 데이터를 검색할 때 사용할 key와 실제 데이터의 값이 (value가) 한 쌍으로 존재하고, key값이 배열의 인덱스로 변환되기 때문에 검색과 저장의 평균적인 시간 복잡도가 O(1)에 수렴하게 됩니다. 해시 함수, 해시 알고리즘, 해시코드? 데이터의 value값을 배열의 인덱스인 정수로 변환하기 위해서는 일련의 과정이 필요합니다. 예를들어 데이터를 문자열로 받게 되었을 때 문자 한글자 한글자의 아스키 코드 값을 더하는 과정으로 문자열을 정수 값으로 변환할 수 있습니다. (만약, hello 라는 문자열을 정수형 key 값으로 바꾼다면, h + e + l + l + o -> .. 더보기
[Oracle] 오라클 문자를 Date 형식으로 TO_DATE ORACLE(오라클)에는 날짜를 표시하는 형이 DATE 형 입니다. 그런데, 문자열로도 날짜를 표시 합니다. 이때 해당 날짜에서 몇일을 뺀다 든지, 몇일을 더한다든지 또는 몇시간을 빼려면 어떻게 해야할까요. 가장 좋은 방법은 DATE 형으로 바꿔서 DATE 연산을 하는 것이 최선이겠지요 ^^ 그래서 사용하는 함수가 TO_DATE 입니다. 사용법은 TO_DATE(문자열,날짜패턴) 입니다. 여기서 문자열은 '20161010 11:11:11' 같은 문자로 된 년월일시분초 정보입니다. 날짜 패턴은 YYYY : 4자리 년도 MM : 2자리 월 DD : 2자리 일 HH24 : 24시간 단위 시간 MI : 분 SS : 초 등입니다. 좀 더 상세 한 내용은 https://docs.oracle.com/cd/B19306_.. 더보기
[Algorithm] LinkedList LinkedList란? 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조입니다. 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노드와 다음 노드와의 연결을 담당합니다. Node는 LinkedList에 객체를 추가하거나 삭제하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않습니다. 중간에 데이터를 추가나 삭제하더라도 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없기에 ArrayList에 비해서 데이터의 추가나 삭제가 용이하나, 인덱스가 없기에 특정 요소에 접근하기 위해서는 순차 탐색이 필요로 하여 탐색 속도가 떨어진다는 단점이 있습니다. 그러므로 탐색 또는 정렬을 자주 하는 경우엔 배열을 사용하고 데이터의 추가/삭제.. 더보기

728x90
반응형