피곤핑
코딩일탈
피곤핑
전체 방문자
오늘
어제
  • 분류 전체보기
    • Kotlin & Java
    • Spring
      • Spring Security
      • Spring
    • 네트워크
    • JavaScript & Node js
    • Docker
    • Python3
    • Unity
    • 딥러닝
    • 객체지향프로그래밍
    • Error 보고서
    • 나의 이야기 & 회고
    • HTML & CSS
    • Archive
    • 독서

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • Client
  • 티스토리챌린지
  • JavaScript
  • 99클럽
  • 오블완
  • TiL
  • 개발자취업
  • nodejs
  • 항해99
  • 코딩테스트준비

최근 댓글

hELLO · Designed By 정상우.
피곤핑

코딩일탈

0904 서버프로그래밍 기초지식
Archive

0904 서버프로그래밍 기초지식

2019. 9. 4. 14:22

서버프로그래밍 

김태현 강사님

sapyeongkim@gmail.com

 

관계형 데이터 베이스

최근에는 low 어쩌구 비관계형 데이터베이스가 주목 받고있지만,,

코딩에서 legacy는 부정적인 의미 - 오래된 것, 바뀌어야 마땅한 것


0.1을 표현할 수 없음 0.0999999924325 이런식의 값으로 더해짐 

실수중에 일부는 이진수로 표현이 안되기떄문에 0.1을 100번 곱하면 (0.5는 이진수로 표현 가능)

9.99999999999999998이런식으로 나옴 

실수(double, float)를 다룰때는 =를 사용하기보다 <, >로 사용하기

 

decimal.. (자바에서는 Decimal 클래스 사용.. 다들 대응하는 그런 방법들이 존재함)


변수 : 메모리의 기억 공간

public, private, protected, internal

값타입과 참조타입

한 기능을 수행하는 단위, 기능단위로 데이터 처리

가상함수란 베이스 클래스에서 상속받는 클래스에게 재정의 가능하도록 제공하는 문법,, 전략패턴

추상클래스는 추상멤버가 하나라도 있는 클래스 , 추상적인 개념을 나타낼때 사용

is는 형변환 체크 연산자이고 리턴타입이 bool이며 형변환 ~~ as는 형변환 연산자 리턴타입이 해당타입의 인스턴스이며

실패시 null 리턴

 


IDE - 통합된 개발환경

 - VCS - 버전 컨트롤 시스템(형상관리라고하나 버전관리가 더 맞음)

    -> 기록이 다 남고 그 전 시스템으로 돌이킬 수가 있음

    -> Issue tracking system이 도입된다면 고객이 접수를하면 그 고객의 할당된 이슈들이 다 보여짐(현재 활성화된)

 - 디버거

 - Linker

 - Text Editor

 - Compiler

 

우리 window 자체도 com으로 만들어져 있음. MS word에서 엑셀 차트를 그대로 표현할 수 있는데 이게 com 때문 

active X까지도 연동이됨 com 으로 인해서!

 

 그 회사의 시스템을봐라, 개발자를 키우는건 시스템이다 (체계)

-> VCS, Issue tracking system 이 두가지를 쓰고 있는 회사인지 보기 + code reveiw (건전한 기술적인 비판)

절대 하지말아야할 질문 - 야근 많이합니까? ㅎ 이딴거~


vcs

cvs, svn, tfc => 지금은 사실 git 으로 정통이 되었음!

svn : 중앙 집중식 구성 (엄청좋은서버에 수십만명이 달라붙는 식)

github : 보안이나 백업등의 문제는 여기서 다 알아서 해줌! -> 오픈 소스의 성지가 되어벌임

기능중에 branch라는 것이 있는데 일종의 스냅샷이라고 생각하면 됨! 

 

공개하고 싶은 코드들은 github에 올려놓고 ~~~ gitlab도 있음!


reshaper - pyCharm을 써보세용 , Rider도요.

학교 이메일 쓰면 reSharper 꼭 한번 써보기! visual studio extension for .NET Developers!!  스피트가 진짜 좋음

예를들어, 추상클래스의 생성자가 public이 될 이유가 전혀 없는데 (문법적으로는 문제가없음) 만들어져 있으면 이런것도 봐줌! 제한이 뜸 이부분은 protected로 하면되는데 왜 이렇게하냐 물어봐줌 ㅎ

이런 툴을 통해서 패턴 매칭을 배움! 


[숫자야구 만들기]

콘솔앱 [.NET Framework] 사용

 - git 설치하기

체크체크~~

 

커밋하는 화면 

 

맨아래 누르면 푸시 할 수 있음
내 주소 복사해서 입력


setting -> colla~~ 여기서 협력자를 추가할 수 있음!

코드를 수정하고 난 후에는 반드시 커밋과 푸시를 하기! 

 

최신버전을 가져오고 나서 푸시를 해야 충돌이 적어짐!

 

프로젝트를 마치기 전에 포킹을 꼭 해야함! 빠이빠이 하기전에 꼭 하기!


branch 만들기

ctrl + alt + f3 분기 왔다리 갔다리 할 수 있음!

fetch 나 pull을 하면 상대방이 만든 분기를 볼 수 있음!

 cw + tab + tab  하면 Console.WriteLice() 나옴!!!! 

 

int 는 사실상 구조체임!!!!

int i1 = int.Parse(s); -> Parse : 문자열을 읽어서 의미있는 데이터 타입으로 바꾸는 것

 

int32 이런거는 .Net 프레임웤에서 사용되는거고 우리가 알고있는 int, flaot 같은것은 사실 별칭이다.

int32 - 32비트 정수 즉, 4바이트

별표는 가장 많이 쓰이는걸 추천해주는 것임

 -> 인텔리 코드라고 함 (ms가 만들어 놓은것임)

 

* string interporation(??) - (파이썬에서는 $대신 f를 씀)

 Console.WriteLine($"당신이 입력한 값은 '{s}'입니다.");

 

코드의 품질을 좌우하는 결정적인 요소는 단위테스트 ! ( 사실우리나라에선 잘안함 ㅠ 소비자가 해줌,, ㅎ 말이안됨)

 

/******************************************************************/

bad smell 이 나는 코드를 개선하는 작업을 리팩토링이라고 함.

refactoring - 내부 구조를 개선하는 작업

/******************************************************************/

 

못생긴 코드 - 소프트웨어의 복잡도가 높음!

면접에서 ~~를 왜 쓸까요? 대답하면 1. 소프트웨어의 복잡도를 낮추기위해서, 높히기위해서~ 대답하거나 2. 보안 

이 두가지에서 대답하면 거의 맞을 확률이 높음! ㅎ.. 

 

코드에 숫자가 바로 들어오는 상수같은 경우

magin number, hard-coded number 라고 말함 (부정적인 의미)

 

ctrl + . 치면 상수 만들어주는거 있떤데 뭔지 알아보기 

상수지정 -> ~~ 해서 만들기 

shift + F2 = 모든 참조 찾기

 

C#에서는 배열을 collention이라고 부름 (.NET Framework에서) - collention, data structure, vector

vector - 넓은 의미로는 여러개의 값이라는 뜻 (힘, 방향 두개의 값을 가지고 있는 데이터) 3~4개의 값

 

배열보다는 list를 쓰는 것이 좋을 것


public - 프로젝트 사이간에도 쓸 수 있음

internal - 해당 모듈 안에서만

 

클래스 - 붕어빵 틀

 

객체(오브젝트)

인스턴스(클래스로 만든 변수 -> 근데 이게 또 객체라고 부를 수 있음)

변수

 

함수

메서드 (클래스의 멤버인 함수) - c#은 모든 함수는 클래스 안에 있어야 하기때문에 기본적으로 메서드)

 

변수

필드 (클래스의 멤버인 변수)

 

c와 c++ 의 차이점은 구조체에 함수를 집어넣을 수 있다 없다 의 차이 (이걸로 어마어마한 변화가 생김)

-> 비로소 객체지향 프로그래밍이 되버림

 

잘 짠 코드는 .을 기점으로 주어부와 술어부가 나뉘어짐. result.Print() 이런식!!!! 만들어놓고 옆에 도움에서 함수만든뒤

내용에 복붙하면 됨! 

 

result.Caculate(); 도 같은 방식으로 만듦

 

상수들을 가지고 있는 클래스 Constant

 

* 찾기해서 이름 바꾸는것 보다 드래그하고 오른쪽 버튼을 눌러서 이름바꾸기 하면 클래스 이름만 바뀌는 정확하게 우리가 원하는 동작을 함! 

 

* 클래스간의 결합도를 낮춘다 -> 클래스 단위로 띄어놓음!

'Archive' 카테고리의 다른 글

0906 10-인터페이스  (0) 2019.09.06
0906 09-가상메서드-추상메서드  (0) 2019.09.06
0906 서버프로그래밍 기초3  (0) 2019.09.06
0905 FackCraft  (0) 2019.09.05
0905 서버프로그래밍 기초 2  (0) 2019.09.05
    'Archive' 카테고리의 다른 글
    • 0906 09-가상메서드-추상메서드
    • 0906 서버프로그래밍 기초3
    • 0905 FackCraft
    • 0905 서버프로그래밍 기초 2
    피곤핑
    피곤핑

    티스토리툴바