프로그래밍 언어
-
Java의 변천사, 추가된 기능은 무엇일까?프로그래밍 언어/JAVA 2022. 10. 2. 23:31
우리 회사는 최신 기술, 버젼 업데이트에 대해 우호적으로 반응하고 우리에게 좋은 인사이트를 줄 수 있는 것이라면 적용하는 편이다. 내가 회사에 입사했을 때에는 Javs SDK11버전을 사용 중이였고 17버전이 나온지 얼마 안 된 시기였다. 그러고 입사 한 달쯤 되었을 때에 17버전를 적용했다. 내가 Java17버전을 사용 중에 있지만 보통 흔히 java서적이나 강의에서 접하는 java8버전과 비교하였을 때에 어떠한 피쳐가 추가되었는지, 쓸만한 기능인지는 알아보지 못했기에 이번 기회에 알아보고 정리해보고자 한다. 1. Text Blocks 기존에 한 줄의 텍스트가 아닌 여러 줄의 텍스트를 작성할 때에는 아래와 같이 작성해야했다. String text = "{\n" + " \"name\": \"John Do..
-
[JAVA] 인터페이스 default method (java 8)프로그래밍 언어/JAVA 2022. 9. 4. 21:52
오늘은 java 8에서 추가된 기능 중 하나인 인터페이스에서의 default method에 대해 정리해보려고 한다. 현재 java의 최신 LTS버전은 17이지만 8버전 때의 업데이트에서는 다양한 기능들이 추가되었었고 java의 기본적인 공부를 할 때에 8버전 때에 추가된 기능들을 하나하나 알아보는 것도 중요하다고 생각한다. 왜 default method가 추가되었을까? - 오라클에서 제공하는 java 공식문서에서는 아래와 같은 예시를 들며 default method의 필요성을 설명했다. computer-controlled car 제조업체들이 자동차에 비행과 같은 새로운 기능을 추가한다면 어떠할까? computer-controlled car 제조업체들은 다른 회사가 자사의 소프트웨어를 하늘을 나는 자동차에..
-
함수형 인터페이스프로그래밍 언어/JAVA 2022. 6. 26. 01:32
함수형 인터페이스 함수형 인터페이스는 java 8이전부터 있던 기능?(기능이라고 말할 것까지는 아니지만...)이지만 특정한 조건을 만족시키는 인터페이스를 함수형 인터페이스라고 한다. 그 전에, 인터페이스가 무엇인지 간단하게 정리해보고 넘어가자. 인터페이스(Interface)란, 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 일반적인 부모 클래스와의 다른점은 인터페이스는 인터페이스의 메소드를 반드시 구현해야 하는 "강제성"을 갖는다. 추상 클래스와의 다른점은 추상 클래스는 extends 키워드를 사용하여 상속하며, 다중 상속은 불가능합니다. 반면 인터페이스는 implements 키워드를 사용하여 상속하며, 다중 상속이..
-
[JAVA] public static void main (String[] args) 파헤치기프로그래밍 언어/JAVA 2022. 1. 21. 22:40
오늘부터 회사에서 사용하는 주 언어인 java를 공부하기 시작했다. java를 처음 공부하는 것은 아니지만 그래도 다시 복습하는 느낌과 하나하나 되짚어보기 위해 공부를 하고 있다. 공부에 참고하고 있는 것은 유튜브에서 무료로 제공하는 남궁성님의 강의이다. https://www.youtube.com/playlist?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 자바의 정석 기초편(2020최신) 최고의 자바강좌를 무료로 들을 수 있습니다. 어떤 유료강좌보다도 낫습니다. www.youtube.com 오늘 배우면서 가장 많이 사용한 public static void main (String[] args)를 파헤쳐보면서 각각 무엇을 의미하는지 알아보려고 한다. 먼저, public은 무엇일까..
-
[python] LBYL와 EAFP프로그래밍 언어/Python 2021. 8. 1. 21:36
오늘은 파이썬의 코딩 스타일인 LBYL과 EAFP에 대해 정리해보려고 한다. 현재 나는 프로그래머스에서 제공하는 파이썬 코테과정 6기를 참여하고 있다. https://programmers.co.kr/learn/courses/12441 [스터디/6기] 코딩테스트와 실무 역량 모두 잡는 알고리즘 스터디(Python반) 🚀 아쉽지만 6기는 마감되었어요. 12월 시작 예정인 7기 오픈 알림을 신청하고, 최저가에 수강하세요! 최저가 알림 받기 코딩테스트와 실무 역량 모두 잡는 스터디: Python반 코딩테스트 운영진과 programmers.co.kr 1주차 과제 문제를 풀고 현업 개발자 리더님에게 코드 리뷰를 받으면서 LBYL과 EAFP를 듣게 되었다. 이 LBYL과 EAFP를 처음 알아서 재미있기도 하고 정리해..
-
[python] deque 사용해보기프로그래밍 언어/Python 2021. 7. 30. 20:50
오늘은 이전부터 많이 사용해왔지만 popleft()만 활요해왔던 deque 객체에 대해 정리해보려고 한다. 보통 deque는 코딩테스트 시에 파이썬에서 기본적으로 제공하는 리스트를 큐로 사용하는 것보다 효율적이여서 사용할 것이다. 효율적이라고 말할 수 있는 대표적인 이유는 원소를 팝할 때이다. 기존적으로 큐라는 자료구조는 FIFO이기 때문에 리스트를 큐로 사용한다면 원소를 팝할 때 list.pop(0)메소드를 사용할 것이다. 여기서 list.pop(0)은 시간복잡도가 O(n)이라는 것을 알아야한다. 위 그림과 같이 pop(0)을 실행하면 그 후에 뒤에 있던 값들이 한 칸씩 당겨지면서 앞 칸을 채우는 작업이 이루어진다. 그래서 pop(0)은 시간복잡도가 O(n)이다. 하지만, deque로 큐를 만들고 po..
-
[스터디 15주차] 람다식프로그래밍 언어/JAVA 2021. 7. 28. 16:14
더보기 목표: 자바의 람다식에 대해 학습 1. 람다식 사용법 람다식은 메소드를 하나의 '식(expression)' 으로 표현한 것 익명 함수(anonymous function)를 생성하기 위한 식이다. 람다식을 사용하면 코드가 간결해지고 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있는 장점을 가진다. 더보기 익명함수란 말그대로 함수의 이름이 없는 함수다. 익명함수들은 공통으로 일급객체(First Class citizen)라는 특징을 가지고 있다. 일급객체란 다음과 같은 것들이 가능한 객체를 의미한다. - 변수나 데이터 구조 안에 담을 수 있다. - 파라미터로 전달 할 수 있다. - 반환값으로 사용할 수 있다. - 할당에 사용된 이름과 무관하게 고유한 구별이 가능하다. 람다식을 사..
-
[python] heapq 모듈 사용해보기프로그래밍 언어/Python 2021. 7. 25. 22:24
오늘은 프로그래머스 문제를 풀면서 heap 자료구조를 사용해야하는 문제를 마주하면서 처음으로 heapq 모듈을 사용해보았다. 앞으로 코딩테스트를 준비하는데 있어 heapq모듈은 자주 쓰일 가능성이 있어 정리해보려고 한다. heapq 모듈은 파이썬 표준 라이브러리에서 제공해주는 것으로 우선순위 큐 알고리즘이라고도 하는 힙(heap) 자료구조 알고리즘의 구현을 제공한다. 간단하게 힙(heap)이 무엇인지 알아보고 넘어가자. 힙(heap) 자료구조란 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 자료구조 특성 상 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아낼 수 있다. 힙의 형태는 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰 혹은 작은 이진 트리로 힙에서는 중복된 ..