[자료구조] 스택, 큐 (feat. java) 포스팅 썸네일 이미지

알고리즘 & 자료구조/자료구조

[자료구조] 스택, 큐 (feat. java)

스택과 큐에 대해 공부해보고 자바로 간단하게 구현해보자 Stack? Queue? 데이터를 저장할 수 있는 기본적인 구조로 선형 자료구조입니다. 선형 자료구조란? 하나의 자료 뒤에 하나의 자료가 있는 데이터가 순차적으로 나열되어 있는 것을 말한다. Stack? - 한 쪽 끝에서만 데이터를 넣거나 뺄 수 있는 LIFO(Last In First Out) 자료구조입니다. - 데이터를 추가할 때는 밑에서부터 쌓아올리고 뺄 때는 위에 있는 것 부터 뺀다고 생각하면 될 것 같습니다. 어릴 때 먹던 콘 아이스크림을 생각해봅시다. 콘을 손에 들고 색색의 아이스크림들을 조금이라도 더 먹어 보겠다고 동그란 모양으로 퍼다가 미친듯이 쌓아올릴 것입니다. 이렇게 아이스크림을 쌓아 올리는 과정(데이터의 삽입)을 Push 라고 하며..

2022.01.12 게시됨

[Java] 예외란 뭘까 포스팅 썸네일 이미지

Java

[Java] 예외란 뭘까

자바 Exception 에 대하여 간단하게 알아보자! Error vs Exception Unchecked vs Checked Error vs Exception Error 프로그램에서 발생하는 비정상적인 상황을 말한다 시스템 레벨에서 발생되는 심각한 상황으로 개발자가 예측하여 핸들링 할 수 없다. StackOverflowError , OutOfMemoryError 등.. 의 에러는 발생하면 복구 할 수 없다! Exception 예외는 프로그램 레벨에서 발생할 수 있는 프로그램의 정상적인 동작을 방해할 수 있는 상황을 말한다. 사용자에 의해 발생할 수 있는 유사상황으로 미리 예상하여 '처리' 할 수 있다! 예외가 발생하게 되면 발생한 시점의 정보를 포함한 예외객체가 런타임 시스템으로 전해져 알 수 있게 된다..

2022.01.10 게시됨

[Java] Abstract , Interface 포스팅 썸네일 이미지

Java

[Java] Abstract , Interface

추상클래스와 인터페이스에 대해 간단하게 알아보자 추상클래스 인터페이스 추상클래스? 클래스가 설계도라면 추상클래스는 '미완성 설계도' 라고 할 수 있다. 클래스가 미완성이라는 말은 미완성 메소드(추상 메소드) 가 포함되어있다는 의미를 말하며 미완성 설계도로 제품을 완성할 수 없듯이 추상클래스로는 인스턴스화 할 수 없다. public class Main{ public static void main(String[] args){ // 추상 클래스는 인스턴스 생성 불가 // 라면 r = new 라면(); } } abstract class 라면 { int 면; int 스프; int 물; abstract void 조리하다(); } 추상 클래스만으로는 인스턴스가 될 수 없다는 것을 실생활에 적용해보자 실제 세계에 '라..

2022.01.09 게시됨

[Java] 중첩 클래스 포스팅 썸네일 이미지

Java

[Java] 중첩 클래스

나만 모르고 나만 본 적 없는 중첩 클래스.. Java 에서 중첩클래스란 무엇일까? 중첩클래스란? 왜 쓸까? 특징 종류 중첩클래스(Nested Class)란 ?? 클래스 안에 또 다른 클래스가 정의되는 것을 말한다. 이 때 일반적으로 우리가 정의하던 클래스를 Outer, 그 안에 있는 클래스를 Inner 라고 말할 수 있다. 중첩클래스를 왜 쓰나?? 한 곳에서만 사용되는 두 클래스들을 논리적으로 그룹화한다. 하나의 클래스가 오직 하나의 다른 클래스에서만 유용하다면 해당 클래스에 포함되어있는게 더 합리적일 수 있다라는 것입니다. 웹 또는 앱의 뷰에서 클릭하면 내 통장에 돈이 들어오는 버튼을 구성한다고 해봅시다. 보여지는 버튼 이라는 것이 구성되어 있어야 돈이 들어온다 라는 이벤트를 처리할 수 있을 것이고 ..

2022.01.05 게시됨

[Java] 자바는 Call by Value  (feat. C++) 포스팅 썸네일 이미지

Java

[Java] 자바는 Call by Value (feat. C++)

자바가 왜 Call By Value인지 공부해보자 Call By ??? 프로그래밍 언어의 함수의 파라미터 호출 방법을 말한다. Call By Reference '참조에 의한 호출' 을 말하며 메소드 동작을 위해 전달 받은 파라미터의 주소를 참조해 직접적으로 값에 영향을 주는 것을 말한다. Call By Value '값에 의한 호출' 을 말하며 메소드로 파라미터를 넘길 때 그 값을 복사하여 메소드 내부에서 사용하는 형태를 말한다. 자바는 Call By Value 이다. public static void main(String[] args) { int num = 10; plus(num); int result = num; System.out.println(result); } static void plus(int..

2022.01.04 게시됨

[Design Pattern] Singleton 패턴이란 포스팅 썸네일 이미지

Design pattern

[Design Pattern] Singleton 패턴이란

소프트웨어 디자인 패턴 중 하나인 싱글톤 패턴에 대해 공부하자! Singleton 패턴이란? Singleton 패턴이란? 인스턴스를 필요할 때마다 계속해서 만들지 않고 메모리 내에 단 한번만 생성한 다음 재사용하기 위한 디자인 패턴이다. 왜 사용할까?? 다른 클래스의 인스턴스들에서 사용되고 공유되어야 하는 단 하나의 객체가 필요할 때 사용한다. 한번의 객체 생성으로 같은 것을 재사용 할 수 있기 때문에 메모리 낭비를 방지할 수 있다. 문제점 싱글톤 객체가 너무 많은 데이터를 공유시킬 경우 클래스간 결합도가 높아져 유지보수와 테스트가 어려워질 수 있다. 멀티 스레드 환경에서 동기화 처리를 하지 않으면 하나의 인스턴스가 보장되지 않을 수 있다. 사용법(Java) 기본 방식으로의 구현 public class ..

2021.12.31 게시됨

[OOP] 말문부터 막히는 객체 지향 프로그래밍 포스팅 썸네일 이미지

Programming

[OOP] 말문부터 막히는 객체 지향 프로그래밍

OOP, 누군가에게 설명할 수 있고 싶다. 객체 지향 프로그래밍에 대해 스스로 예시를 만들어보며 이해하고 공부해보자 OOP? OOP특성 OOP 2분 요약 ver. OOP? 객체 지향 프로그래밍(Object Oriented Programming) 은 컴퓨터 프로그래밍 패러다임 중 하나로 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다. 필요한 데이터를 추상화해 상태 와 행위 를 가진 객체 로 만들어 유기적으로 동작하는 프로그램의 주체 된다. 절차적 방식에서 기능을 중심으로 무엇을 어떤 절차로 처리할까? 라는 생각으로 프로그램을 처리했다면 객체지향 방식에서는 객체를 중심으로 누가 무엇을 수행하나 라는 것에 중점을 두어 프로그램을 ..

2021.12.27 게시됨

[Design Pattern] 설명하기 쉽지 않은 MVC Pattern 포스팅 썸네일 이미지

Design pattern

[Design Pattern] 설명하기 쉽지 않은 MVC Pattern

뭔지 알아도 설명을 못한다는 건 모르는 거나 마찬가지이다. 기록을 해보며 알아갈 수 있도록 해보자! Design Pattern? MVC Pattern? Design Pattern 이란? 소프트웨어 디자인 패턴은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 왜 있나? 뒤에서 알아볼 MVC와 웹 개발을 예를 들어 생각해봅시다. 웹 프로그래머들이 많은 웹 애플리케이션을 만들어오며 피드백에 따라 새로운 기능을 추가하거나 기능을 수정하기 위해 코드는 계속해서 추가되고 변경되게 됩니다. B 라는 기능을 추가하는데 다른 A라는 부분이 바뀌어야 한다던가, 코드가 너무 복잡해져서 생산성이 떨어진다던가 하는 등 .. 유지보수에 어려움이 생기게 됩니다. 그..

2021.12.23 게시됨