본문 바로가기

항해 99

(151)
페어 프로그래밍 - 코딩 테스트 2 개인 풀이 코드 리뷰 - ChatGPT 14. 서울에서 김서방 찾기 class Solution { public String solution(String[] seoul) { String answer = ""; for (int i = 0; i < seoul.length; i++) { if (seoul[i].equals("Kim")) { answer = "김서방은 "+i+"에 있다"; break; } } return answer; } } 코드 리뷰 가독성 변수 이름: answer 변수는 적절하게 이름이 지어졌습니다. 그러나, seoul 배열의 이름은 이 배열이 무엇을 담고 있는지에 대한 정보를 더 명확하게 해주면 좋을 것 같습니다. 예를 들어, names나 people처럼 더 의미 있는 이름을 사용할 수 있습..
페어 프로그래밍 - 코딩 테스트 개인 풀이 코드 리뷰 - ChatGPT 1. 짝수와 홀수 class Solution { public String solution(int num) { String answer = (num % 2 == 0) ? "Even":"Odd"; return answer; } } 코드 리뷰 코드 스타일과 가독성 변수명: answer 변수명은 명확하게 메소드의 결과를 나타냅니다. 이 경우와 같이 간단한 조건문에서는 변수 없이 직접 return하는 것도 고려할 수 있습니다. 조건문: 삼항 연산자를 사용하여 짝수와 홀수를 판별하는 로직은 매우 간결하며 가독성이 좋습니다. 성능 이 경우, 성능 최적화는 크게 고려할 사항이 아닙니다. 주어진 코드는 이미 매우 효율적입니다. 정수의 홀수/짝수 판별은 비트 연산을 사용하여 더 최적..
WIL - 1 Fact : 이번주 있었던 일, 내가 한 일 월 : 팀원과 간단한 Git을 사용한 협업 연습, Java 기초 개념 복습 화 : 연산자, 조건문, 반복문, 배열 복습 수 : 2인 1조 팀 프로젝트 진행(숫자 야구 프로그램 개발), 객체 지향, 상속, 다형성 복습 목 : 1주차 테스트 진행, 다형성 복습, 역할과 구현, OCP 학습 Feeling : 나의 감정적인 반응, 느낌 Git 사용이 익숙하지 않아서 간단한 push, merge, 충돌에 대한 수정 등을 진행하는 데 어려움을 겪었음. 앞으로 Git을 사용하는 연습을 통해 익숙해 질 필요성을 느낌 쉬운 프로그램을 개발하면서도 팀원과 의견 공유를 통해 좀 더 효율적인 개발을 할 수 있었고 나와는 다른 관점으로 코딩하는 것을 보고 배울 수 있어서 좋았음 첫 ..
역할과 구현, OCP 항해 99 : TIL - 4 학습 내용 정리 다형성 - 역할과 구현 역할과 구현으로 구분하면 단순해지고, 유연해지며 변경도 편리해짐. 장점 클라이언트는 인터페이스(역할)만 알면 된다. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다. 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않음 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않음 자바 언어의 다형성 활용 역할 = 인터페이스 구현 = 인터페이스 구현 클래스, 구현 객체 객체 설계 시 역할과 구현을 명확히 분리, 객체 설계 시 역할(인터페이스)를 먼저 부여하고 역할을 수행하는 구현 객체 만들기 객체의 협력 관계 클라이언트 : 요청 , 서버 : 응답 다형성의 본질 클라이언트 변경 없이, 서버의 구현 기능을 유연하게 변경 가능 한계 ..
Java 기초 12 - 다형성 다형성( Polymorphism) 객체지향 프로그래밍의 대표 특성인 캡슐화, 상속, 다형성 중 하나. 한 객체가 여러 타입의 객체로 취급될 수 있는 능력 다형성의 핵심 이론 다형적 참조 메서드 오버라이딩 다형적 참조 부모와 자식이 있고, 각각 다른 메서드를 가지는 상속 관계 Parent class package poly.basic; public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); } } Child class package poly.basic; public class Child extends Parent{ public void childMethod() { System.out.println..
객체 지향, 상속, 다형성 항해 99 : TIL - 3 학습 참조 : 강의 - Java 문법 종합반 3주차 학습 내용 정리 객체지향 프로그래밍 객체(인스턴스)들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법 모든 사물은 속성과 기능을 가진 객체임, 프로그래밍에서 객체는 클래스(설계도)에 의해 메모리에 생성된 것을 의미함. 특징 캡슐화 속성과 기능을 하나로 묶어서 필요한 기능을 메서드로 외부에 제공하는 것 (외부에서 사용하지 않는 데이터는 숨긴다) 상속 기존 클래스의 속성과 기능을 새로운 클래스에서 재사용할 수 있도록 물려 받는 것. extends 키워드로 상속 가능 (다중 상속은 불가능) 부모 클래스 : 상속을 통해 자신의 필드 및 메서드를 다른 클래스로 제공 자식 클래스 : 부모 클래스로부터 필드와 메서드를 상속받는 클래스..
연산자, 조건문, 반복문, 배열 항해 99 : TIL - 2 학습 참조 : 강의 - Java 문법 종합반 2주차 팀과제 - 숫자 야구 프로그램 조건 컴퓨터는 0 과 9 사이의 서로 다른 숫자 3개를 무작위로 뽑는다 (ex) 123, 490 사용자는 컴퓨터가 뽑은 숫자를 맞추기 위해 시도한다 컴퓨터는 사용자가 입력한 세자리 숫자에 대해서, 아래의 규칙대로 스트라이크(S)와 볼(B)를 알려준다 숫자의 값과 위치가 모두 일치하면 S 숫자의 값은 일치하지만 위치가 틀렸으면 B 기회는 무제한이며, 몇 번의 시도 후에 맞췄는지 기록 숫자 3개를 모두 맞춘 경우, 게임을 종료 import java.util.Random; import java.util.Scanner; public class BaseballGame { public static void..
Java 기초 개념 항해 99 : TIL - 1 학습 참조 : 강의 - Java 문법 종합반 1주차 학습 내용 정리 JVM Java Virtual Machine : 자바를 다양한 환경에서 실행할 수 있게 해준다. 클래스로더, JIT 컴파일러, 인터프리터, 가비지 컬렉터가 있음 바이트 코드 Java 컴파일러를 통해 JVM이 이해할 수 있는 기계어로 변환된 java 소스 코드 인터프리터 바이트 코드를 JVM이 읽을 수 있도록 읽고 해석 Java 컴파일러 개발자가 작성한 자바 소스 코드를 JVM이 이해할 수 있는 바이트 코드로 변환하는 역할 수행 JIT 컴파일러 인터프리터 보조 역할 프로그램이 실행 중인 런타임에 실제 기계어로 변환해 주는 컴파일러 (동적 번역 dynamic translation) 메모리 영역 Java에서 사용하..