본문 바로가기

분류 전체보기

(136)
Why python..? 나는 첫 코딩테스트 언어로 파이썬을 선택했다.주위에서 코테는 파이썬이라며🗣️👂 사실 지금 막 본격적으로 자바를 배우면서 파이썬 코드가 얼마나 간결한지 체감할 수 있었다. 파이썬 최고 그래서 간단하게 아래에 입력 받고, 출력 받는 코드를 작성해보았다.  Javaimport java.util.*;class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int inputNumber = scanner.nextInt(); for (int i = 0; i  PythoninputNumber = int(input())for i in range(inputNumber): print(i) ..
클린 코드(Clean Code) 🫧 클린 코드(Clean Code) 사실 최근까지만 해도 클린 코드의 정의를 잘 모르고 있었다. 코드에 주석을 달면 내 코드를 읽는 사람들이 더 잘 이해할 수 있지 않을까? 라고 생각하며 항상 습관적으로 주석을 달며 코드를 작성했다.   하지만 진짜 좋은 코드는   좋은 코드 > 나쁜 코드 + 좋은 주석주석으로 설명을 하기 보다는, 코드로 의도를 전달하도록 노력한다. 그렇다면 클린 코드는 무엇일까?   좌측의 그래프를 보면 알 수 있듯이 클린 코드는 그 생산성이 시간이 지나도 일관적으로 유지되고,나쁜 코드는 계속해서 생산성이 떨어지고 관리 비용이 증가한다.  우측의 그림은 「 깨진 유리창 법칙 」 을 나타내는 그림이다. 즉, 코드는 시간이 지날수록 더 지저분해진다.  결과적으로, 적은 분량으로 코드를 ..
다형성? ✅ 다형성 1. 하나의 타입에 여러 가지 객체를 담을 수 있다.2. 하나의 객체를 여러 가지 타입에 담을 수 있다.   Java에서 다형성의 의미는 둘 중 무엇일까? 여러가지 형식(타입)에 하나의 객체가 들어갈 수 있다? 그렇다면 2번이 아닐까..?  ⭐하나의 타입에 여러 가지 객체를 담는 예시 코드를 보자Phone phone = new Phone();Phone phone = new Galaxy();  동일한 타입의 변수에 여러 가지 객체를 담을 수 있다.즉, Phone은 Galaxy와 iPhone을 둘 다 담을 수 있다.   ⭐ 하나의 객체를 여러 가지 타입에 담는 예시 코드를 보자Phone phone = new Galaxy();Galaxy phone = new Galaxy();    사실 위의 예시 ..
상속? ✅ 상속? 자 다음의 세 가지 질문에 대해 본인의 생각을 답할 수 있다면 Java에서 '상속'이 어떤 개념인지 잘 이해하고 있다고 생각한다.    Q1. 상속 관계를 결정하는 클래스는 누구인가요?Q2. 아래 네모는 객체입니다. A,B 중 누가 부모이고, 자식일까요?Q3. 생성자도 상속되는 걸까요?   💭우선 내 생각은 다음과 같다.  ✔️ 상속 관계를 결정하는 클래스는 자식 클래스 ⇒ ‘extends 부모 클래스’로 선언자식이 부모를 결정한다니... 신기한 자바의 세상🌏 ✔️ A가 부모이고 B가 자식이다.자식은 부모의 모든 기능을 사용할 수 있을 뿐만 아니라 추가로 자신만의 기능을 만들어 사용할 수 있다.즉, 상속은 코드의 재사용성과 확장성을 높이기 위해 사용된다. ✔️ 생성자는 상속되지 않는다....
페어 프로그래밍(BubbleSort) ⭐KPT 회고 ✔️ KEEP  우선 상대가 지시한 내용을 바탕으로 작성 드라이버로서 네비게이트가 제시한 코드 작성의 흐름이 잘못되었다고 생각하면 내 생각을 조리있게 전달상대의 지시가 이해되지 않았을 때, 솔직하게 다시 물어봐서 둘의 생각이 같은 방향이 되도록✔️ PROBLEM  하나의 문제라도 해결 방법이 달라서(작성하고자 하는 함수) 무엇이 더 효율적이고 빠르게 문제를 해결할 수 있을지 서로 논의 후 코드 작성✔️ TRY  내가 상대방에게 지시하고자 하는 바를 명확히 해서 전달서로 이해하는 방향이 다르면 잠시 "멈춤" 결과 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) t..
MVC 모델 MVC (Model-View-Controller)✔️ Model: 비즈니스 로직 + 데이터 소통✔️ View: 클라이언트 화면(출력), 사용자 입력✔️ Controller: 사용자 요청을 받아서, View? 또는 Model 명령   💭 Why?코드의 재사용성과 유지보수 코드의 가독성을 높이기 위해서 기능별로 분리해야한다.그러면 어떻게 하면 잘 분리하는 걸까..? 파일의 결합도는 낮게! 기능별 응집도는 높게! 그러면 한 부분에서 코드를 수정했을 때 다른 부분에 영향을 미치지 않는다.  + (추가)한 페이지 코딩하면 페어프로그래밍 해야하는 상황에서는 어떻게 할껀데..?그리고 만약 내가 일을 그만 두면 후배들에게 어떻게 인수인계..?  ⭐ JSP JSP는 HTML(View)안에 JAVA코드(Controlle..
[백준]16953 A->B(Python) https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A B 1. 2를 곱한다. 2. 1을 수의 가장 오른쪽에 추가 1, 2의 연산을 반복해서 A => B로 바꾸는데 필요한 연산의 최솟값 + 1 or -1 출력 문제 접근 그리디라는 생각은 들었지만 2번 연산이 좀 까다롭다고 느껴졌다. top-down방식을 사용해 B를 A로 만든다고 가정하면, 일의 자릿수가 1이라면 1을 제거 그렇지 않다면 2로 나누기 코드 시간 초과 import sys input = sys.stdin.readline cnt = 1 A, B = map(int, input().split()) ..
뮤텍스 & 세마포어 세마포어(Semaphore) 멀티 프로그래밍 환경에서 공유된 자원의 데이터가 한 번에 하나의 프로세스만 접근할 수 있도록 제한 동기화 대상이 하나 이상 세마포어를 소유하지 않는 스레드가 세마포어 해제 가능 세마포어는 시스템 범위에 걸쳐 있고 파일로 존재 뮤텍스(Mutex) 공유 불가능한 자원의 동시 사용을 피하기 위해 사용하는 알고리즘 동기화 대상이 하나일 때 사용 자원을 소유하고 있는 스레드만이 뮤텍스 해제 가능 뮤텍스는 프로세스의 범위를 가지며 프로세스가 종료될 때 자동으로 정리 뮤텍스 vs 세마포어 세마포어는 뮤텍스가 될 수 있지만, 뮤텍스는 세마포어가 될 수 없음 Q. 뮤텍스와 세마포어의 적용범위의 차이? A. 세마포어는 프로세스간에 주로 사용, 뮤텍스는 스레드간에 주로 사용, 뮤텍스는 0,1로 ..