부트캠프 개발일기123 21일차: 재귀(Recursion) 재귀(再歸)는 사전적으로 "원래의 자리로 되돌아가거나 되돌아옴"의 의미를 가진다. 따라서 재귀함수는 말그대로 자기 안에서 자기 자신을 호출하는 함수를 의미하게 된다. class Example{ public int factorial(int num){ if(num 연습을 통해서 익숙해지도록 하자! 재귀함수가 성립하기 위해서는 구현하고자하는 내용을 작은단위로 쪼갤 수 있어야한다. 또한 재귀 호출이 종료되는 조건(시점)이 있어야한다. 위의 사례를 예로 들면, factorial 의 경우 1부터 1씩 증가시키면서 정해진 값까지 곱하는 형태를 가진다. factorial 5 = 1 * 2 * 3 * 4 * 5 (1 * 2 * 3 * 4) * 5 // 문제를 작은 단위로 쪼갤 수 있다 (1 * 2 * 3) * 4 (1 .. 2023. 3. 14. 20일차: Section 1 회고 어느새 한달이라는 시간이 지나고 Section 1이 종료되었다. 이번 단위기간은 자바의 기본적인 내용과 활용에 대해 학습하는 시간이었다. 한달간 정신없이 달리다보니 내가 무엇을 알고있는지, 무엇을 아직 이해하지 못했는지 점검할 시간조차 없었다. 아무래도 비전공자이다 보니 내용을 따라가기에 바빴고 매일 저녁 늦게까지, 게다가 주말까지 추가학습을 해야 스스로 만족할만큼 따라갈 수 있었다. (지난 주말 일주일만에 처음으로 집밖으로 나갔는데 계절이 바뀌어있더라...^^) 매일 교육 과정만 다루었던 만큼 오늘은 교재에서 제안하는 KPT 방식을 통해 한달을 돌아보려고 한다. 1. 목표 부트캠프를 시작하면서 내 목표는, 올해 안에 개발자로 커리어 전환을 하는것이었다. 예전에 이직을 하면서 커리어를 전환한적이 있는데,.. 2023. 3. 13. 19일차: 파일입출력(InputStream, OutputStream), 스레드(Thread) ❯ InputStream, OutputStream 자바에서는 입출력을 다루기 위한 InputStream, OutputStream을 제공함 스트림은 단방향으로만 데이터를 전송할 수 있으므로 입력, 출력을 위한 각각의 스트림이 필요함 FileInputStream 프로젝트(코드)와 파일(.txt)이 같은 디렉토리에 있을때, FileInputStream을 통해 해당 txt파일의 내용을 코드 내부로 가져올 수 있다. BufferedInputStream이라는 보조 스트림을 사용하면 성능이 향상된다. (아래 코드에서 (1)에 해당) Buffer란 바이트 배열로 여러 바이트를 저장해서 한번에 많은 데이터를 입출력할 수 있도록 돕는 임시 저장공간이다. public static void main(String args[]).. 2023. 3. 10. 18일차: 스트림(Stream) ❯ 스트림(Stream) 자바 8부터 도입된 문법으로 배열, 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 하는 반복자. 데이터 소스가 무엇인지에 관계 없이 같은 방식으로 데이터를 가공, 처리할 수 있도록 도와줌 스트림의 특징 생성, 중간연산, 최종연산 세단계로 이루어짐 원본 데이터 소스를 변경하지 않음 일회용임(한번 사용 후 사라짐) 내부 반복자임 스트림의 생성 배열 스트림 생성 배열을 데이터 소스로 하는 경우 Arrays 클래스의 stream( )메서드 또는 Stream 클래스의 of( ) 메서드 사용 가능 String[] arr = new String[] {"a", "b", "c"}; // 문자열 배열 선언 및 할당 Stream stream1 = Arrays.stream(arr).. 2023. 3. 9. 17일차: Java 심화(Annotation, Lambda) ❯ 애너테이션(Annotation) 애너테이션이란, 소스코드가 컴파일되거나 실행될 때 컴파일러 및 다른 프로그램에게 필요한 정보를 전달해주는 문법 요소. @ 로 시작하며 클래스, 인터페이스, 필드, 메서드 등에 붙여서 사용함 표준 애너테이션 JDK에 내장되어 있는 일반적인 애너테이션 @Override : 메서드 앞에만 붙을 수 있으며, 선언한 메서드가 상위 클래스의 메서드를 오버라이딩 하거나 추상 메서드를 구현하는 메서드라는 것을 컴파일러에게 알려주는 역할. @Deprecated : 기존 사용하던 것이 다른 기술로 대체되어 더이상 사용하지 않도록 유도할 때 사용. @SuppressWaring : 컴파일 경고 메세지가 나타나지 않도록 사용. 경고가 발생할 것이 예상됨에도 묵인해야할 때 사용. ex. @Su.. 2023. 3. 8. 16일차: 컬렉션(Collection Framework) ❯ 컬렉션 프레임워크(Collection Framework) 컬렉션: 여러 데이터들의 집합. 여러 데이터를 그룹으로 묶어놓은것. 컬렉션 프레임워크: 컬렉션을 다루는데 편리한 메서드를 미리 정의해놓은것 ❯ List 인터페이스 List 는 데이터의 순서가 유지되며, 중복값 저장이 가능한 컬렉션 구현에 사용됨. Collection 인터페이스 구현. 배열과 같이 객체를 일렬로 늘어놓은 구조를 가짐. 객체 저장 시 자동으로 인덱스가 부여되고 인덱스로 객체를 검색/추가/삭제 등 가능 ArrayList 클래스 List 인터페이스를 구현한 클래스로, 객체가 인덱스로 관리된다는점에서 배열과 유사함 ArrayList는 객체가 추가되면 자동으로 저장용량이 늘어나며 데이터가 연속적으로 존재함(순서를 유지함) ArrayList.. 2023. 3. 7. 이전 1 ··· 15 16 17 18 19 20 21 다음