본문 바로가기

전체 글156

<코드 프레소 웹 개발 트랙> 처음 시작하는 자바 프로그래밍[4] 자바 프로그램은 기본적으로 위에서 아래로 순차적으로 실행된다. 이 때 특정 코드를 조건에 따라 실행시키는 것을 [ 분기 - 조건문 ] 이라고 하고, 특정 코드를 반복해서 실행하는 것을 [ 반복문(loop) ] 이라고 한다. 반복문의 종류 > 특정 코드 집합(코드 블록)을 반복적으로 수행하는 것 > 주어진 조건을 만족(True)할 때 까지 반복하는 것을 의미한다. 1. For문 - 반복을 위한 특정 조건으로 for문을 구분한다 ( 초기식; 조건식; 증감식; ) - { } 를 통해서 for문에 대한 코드 블록을 명시한다. - 조건식의 결과가 True인 동안은 코드 블록 내용을 반복실행한다. 1부터 100까지 모두 더하는 과정을 출력하자 ! int sum = 0; for (int i = 1; i " 배열명.l.. 2022. 1. 13.
DSAC과정 완료 2022. 1. 13.
<코드 프레소 웹 개발 트랙 > Git 입문 코드 프레소 웹 개발 트랙의 "실무자가 알려주는 Git 입문" 내용입니다. 형상 - 사물이 생긴 모양이나 상태를 의미함 - 소프트웨어에서의 형상 하나의 소프트웨어는 다양한 형태의 형상을 갖고 요구사항이 변할 때마다 형상 또한 게속하여 변하게 된다. (1) 와이어 프레임 : 화면 설계서로, 실제 사용자가 어떤 서비스를 제공 받을지 Ui/ UX 표현 등 (2) Flow chart : 프로그램이 어떠한 흐름으로 진행되는지 도식화한 것 (3) 소스 코드 형상관리 (SCM) 소프트웨어 개발 프로세스 각 단계의 소프트웨어 변경점을 체계적으로 추적&관리하는 일련의 모든 활동을 의미함 형상관리는 변경점을 관리한다는 의미로 복잡한 로직과 코드에서 누군가에 의해 변경되는 부분등을 놓치지 않고 관리 추적하여 제품의 무결성을.. 2022. 1. 13.
<코드프레소 웹 개발 트랙> 처음 시작하는 Java 프로그래밍[3] 조건문과 배열 [1] if - else if - else 문 JAVA 언어에서 다중 조건을 구현하는데 필요한 구문 중 하나이다. if (조건식1) { 조건식 1의 결과가 True인 경우 실행함 } else if (조건식2) { 조건식 2의 결과가 True인 경우 실행함 } else { 모든 조건의 결과가 False인 경우 실행함 } 내부적으로도 조건식의 결과가 true 인 특정 if 또는 else if , else 의 내부 코드만 실행하게 된다. 내부 코드(Code Block)에서는 값 할당, 함수 사용 등 다양하게 구현 가능하다. else if는 없거나 1번 이상 다중 사용 가능하다. else는 없거나 1번만 사용 가능하다. 논리 연산자 둘 이상의 조건들을 결합하여 최종 Ture 값 또는 False 값.. 2022. 1. 13.
백준 단계별 문제 < 입출력 > [1]입력 : Input 1. Scanner Scanner sc = new Scanner(System.in); System.in은 inputStream의 정적 필드이다. - 스트림 : 데이터의 흐름으로 시작점과 끝점이 존재하는 흐름을 의미한다. 파일 데이터 , 입력 데이터 등이 Stream으로 분류 될 수 있다. - InputStream : 입력 값의 시작부터 끝으로, Scanner로 부터 입력받는 데이터 흐름 - OutputStream : 출력 값의 시작부터 끝 - 내부 과정에서는 InputStreamReader를 호출하여 StreamDecoder를 호출하여 InputStream을 문자형태로 해석한다. - 바이트 단위 데이터를 Charcter 단위 데이터로 변환한다. - 이후 next(), netxIn.. 2022. 1. 12.
<코드프레소 웹 개발 트랙 > 처음 시작하는 Java 프로그래밍[2] 변수와 연산자 변수 (Variable) 컴퓨터 프로그램은 데이터와 데이터를 처리하는 알고리즘으로 구성된다. 변수는 데이터를 저장하기 위한 공간으로 이름으로 변수를 분간한다. 자바의 변수 선언 public class Calcvlator { public static void main(String [] args) { String name; int age = 25; int new_year = 1; } } 자료형과 변수만 선언한다면 변수를 생성할 공간을 할당한다. 대입 연산자 '=' 통해서 변수에 값을 할당할 수 있다. 선언된 변수는 변수의 이름을 통해서 호출하여 사용할 수 있다. (EX) System.out.println(age); 선언된 변수는 이름을 통해서 변수 공간의 값들을 참조하여 서로 연산할 수 있다... 2022. 1. 11.
<코드 프레소 웹 개발 트랙 > 처음 시작하는 Java 프로그래밍[1] JAVA - 1991년 제임스 고슬링의 주축 그린 프로젝트로 시작되어 현재 JAVA 18까지 출시 자바의 특징 WORA(write once run anywhere) 하드웨어에 의존적이던 기존 언어 스타일에서 탈피 Java는 한번 작성 및 컴파일 된 결과물이 어디서든 동작 가능(anywhere) " JVM을 통해서 한번 컴파일 된 결과물은 하드웨어,OS 등 상관 없이 실행가능 " 객체 지향 언어로 상속, 다형성, 캡슐화 등 언어적으로 지원한다. 코드는 Class를 기본 단위로 구성 된다. 자동화 된 메모리 관리를 지원한다 ( JVM의 GC(garbage collector)가 자원 회수 ) 자바의 특징 2 소스코드를 컴파일 시 , ByeCode를 생성한다. byecode란 Java 코드를 빌드 했을 경우 생.. 2022. 1. 10.
<코드 프레소 웹 개발 트랙> Git 기본 플로우 이해 현재 폴더의 Git 상태 확인 깃의 상태의 변화가 생긴다면 status에 변경된 점들이 나타난다. $ git status 작업 디렉토리의 파일 상태 분류 Untracked 변경점은 발생했으나, Git에 의해 관리되지 않고 있는 파일 ( 단 한번도 Staging Area에 포함되지 않은 파일 즉, 새로 추가된 파일 ) Tracked Git에 의해 관리되고 있는 파일 , 추적되고 있는 파일 ( Staging Area에 한 번 이상 포함된 파일 ) 만약 내가 새로운 파일을 생성한 후 이를 단순히 저장만 한다면 이 파일은 UnTrack된 상태로 Working Directory에 위치하여 나의 PC에서만 관리되고 있는 파일 상태가 된다. 스테이징 영역에 파일의 변경점을 추가 ( 추적시작 ) 작업 디렉터리의 변경 .. 2022. 1. 9.
소켓 주소 구조체 소켓주소 구조체 네트워크 프로그램에서 주소 정보를 담고 있는 구조체로, 다양한 소켓 함수의 인자로 사용. ( 기본형 SOCKADDR ) SOCKADDR 구조체 1. 기본형 typedef struct sockaddr { u_short sa_family; // 2byte > 주소 체계를 나타내는 16비트 정수값 AF_INET or AF_INET6 char sa_data[14]; // 14 byte > 해당 주소 체계에서 사용할 주소 정보 TCP/IP 프로토컬 + ip + port# 2. SOCKADDR_IN (IPv4 전용) typedef struct sockaddr_in { short sin_family; // AF_INET (2byte) u_short sin_port; // port# (2byte) st.. 2021. 11. 1.
소켓 소켓은 3가지 관점으로 분류 할 수 있다. 1) 데이터의 타입 2) 통신 종단점 - 응용 프로그램은 양 측 소켓이 연결확립이 되있다고 가정하고 데이터를 주고 받는다. 3) 네트워크 프로그래밍 인터페이스 - 통신 양단이 모두 소켓을 사용할 필요는 없다 윈도우 소켓(윈쇽) 윈도우 소켓은 DLL을 통해 기능 제공 -> DLL 초기화와 종료 작업을 위한 함수 필요 윈도우는 OS 차원에서 멀티스레드를 지원하므로 멀티스레드 환경에서 안정적으로 동작하는 구조와 이를 위한 함수가 필요 (장점) 호환성이 높아 이식성이 좋음 저수준 프로그래밍 인터페이스로, 세부제어가 가능하고 고성능 네트워크 프로그램 개발 가능 (단점) 서로 다른 바이트 방식을 사용하거나 처리 단위가 서로 다른 호스트의 통신시, 변환 처리 요구 응용 프로.. 2021. 10. 31.
numpy numpy 라이브러리 불러오기 import numpy as np numpy는 파이썬에서 보다 효율적인 배열을 지원한다. 파이썬이 아닌 C로 내부로 구현되어 하드웨어의 친화적인 C의 특성으로 계산 속도면에서 파이썬의 리스트보다 우월하다. list = [1, 2, 10] list2 = [ [1,2,3], [4,5,6], [7,8,9]] # 넘파이 배열 생성 arr = np.array(list) arr2 = np.array(list2) # 넘파이는 각 요소의 연산을 지원한다 list * 3 # [ [1,2,10], [1,2,10], [1,2,10] ] arr * 3 # [ 3 6 30 ] # 넘파이는 기존의 리스트 형식이 아닌 ndarray라는 타입으로 저장된다. list2 # [ [1,2,3], [4,5,6.. 2021. 9. 16.
Refactoring - 메서드 정리 Extract Metho - Problem : 그룹으로 함께 묶을 수 있는 코드 조각이 있는 경우 - Solution : 코드의 목적이 잘 드러나도록 메소드의 이름을 지어 별도의 메소드로 뽑아 낸다 # 수정 전 void pringOwing() { pring Banner(); System.out.println("name : " + name); System.out.println("amount : " + getOutstanding()); } # 수정 후 void printOwing() { printBanner(); printDetails(getOutstanding()); } void printDetails(double outstanding) { System.out.println("name : " + name).. 2021. 9. 16.
반응형