728x90

1. 변수와 데이터 타입

Python에서 변수는 데이터를 저장하는 이름입니다. 변수는 값을 할당하고, 그 값을 나중에 다시 사용할 수 있습니다. Python은 변수를 선언할 때 타입을 명시할 필요가 없으며, 변수가 값을 저장하는 순간 타입이 자동으로 정해집니다.

 

변수 선언과 데이터 타입

x = 10          	# 정수형
y = 3.14        	# 실수형
name = "Jee"  		# 문자열형
is_active = True  	# 불리언형 (True 또는 False)

 

변수 출력하기

x = 10
print(x) # 10

 

 

2. 연산자

 

산술 연산자

산술 연산자는 숫자 값을 다룰 때 사용됩니다.

a = 10
b = 5
print(a + b)  	# 덧셈: 15
print(a - b)  	# 뺄셈: 5
print(a * b)  	# 곱셈: 50
print(a / b)  	# 나눗셈: 2.0
print(a // b) 	# 몫: 2
print(a % b)  	# 나머지: 0
print(a ** b)  	# 거듭제곱: 100000

 

 

비교 연산자

비교 연산자는 두 값을 비교하고, 그 결과로 True 또는 False를 반환합니다.

 

a = 10
b = 5
print(a == b)  # 같다: False
print(a != b)  # 같지 않다: True
print(a > b)   # a가 b보다 크다: True
print(a < b)   # a가 b보다 작다: False
print(a >= b)  # a가 b보다 크거나 같다: True
print(a <= b)  # a가 b보다 작거나 같다: False

 

논리 연산자

논리 연산자는 두 개 이상의 조건을 결합할 때 사용됩니다.

 

x = True
y = False
print(x and y)  # 논리곱 (AND): False
print(x or y)   # 논리합 (OR): True
print(not x)    # 논리 부정 (NOT): False

 

 

3. 조건문

조건문은 특정 조건에 따라 프로그램 흐름을 제어할 수 있게 해줍니다.

Python에서 조건문은 if, elif, else를 사용하여 작성합니다.

age = 16
if age >= 18:
    print("성인입니다.")
elif age >= 13:
    print("청소년입니다.")
else:
    print("어린이입니다.")

 

 

4. 반복문

반복문은 어떤 코드를 반복적으로 실행하는 데 사용됩니다.

Python에서는 for문과 while문을 사용하여 반복문을 작성할 수 있습니다.

 

# for문

for i in range(5):  # 0부터 4까지 반복
    print(i)
    
# while문

count = 0
while count < 5:
    print(count)
    count += 1  # count 값 증가
728x90
반응형
728x90



[개발일기] 2024.02.02

개발 시작 한 지 거의 한 달 정도 되어간다.

설계는 끝났고 2일에 한 페이지씩 구현해 나가야 하는 상황이다. 

개발환경 세팅이 끝나고 한 동안 개발하면서 일어난 에러나 query에서는 별다른 문제 없이 진행했으나...

패키지 소스를 리셋하고 업데이트 하는 과정에서 파일이 build 하는 과정에서 꼬인건지 WAS가 안 올라온다.

애초에 build 조차 되지 않는다.

알고보니 pox.xml 과 lib/jar 버전이 충돌해서 일어난 것이였다.

그 부분에서 버전에 맞게 수정해주고 다시 WAS 구동을 해보려 했지만 이번에는 Time out에 걸렸다.

이 부분은 랜선을 통해서 간 후 프록시 서버 요청을 받는데 여기 부분을 막아놔서 Time out에 걸린다고 했다.

여기서 문제를 해결해보기 위해 프로젝트를 한 번 갈아보기도 하고 JDK도 다시 설정해보고 라이브러리 설정도 새로 싹다 갈아봤지만 안 되었다.

결론적으로는 서버 관리 하는 쪽에서 차단을 풀어줘야 되는 걸로...

이토록 실 개발기간 중 개발에 집중할 수 있는 시간을 온전하게 만드는 건 어려운 부분인 것 같다.

항상 느끼는 거지만 IDE 와 친해야 한다... 하나의 IDE를 능숙하게 다뤄야 개발자로써 어려움 없이 일할 수 있는 환경을 만드는 거다.

728x90
반응형

'console.log("What ? " + Cord); > POJECT_DAILY' 카테고리의 다른 글

[개발일기] 2024.01.14  (0) 2024.01.14
[개발일기] 2024.01.11  (0) 2024.01.11
개발자의 일기...230628  (0) 2023.06.28
728x90

SELECT 문과 WHERE 절 조건문 연습

 

-- 테이블 전체 검색
SELECT * FROM TAB;

-- 테이블 전체 컬럼 출력하되 COLUMN이 NULL이 아닌 경우에만
SELECT *
	FROM TABLENAME
WHERE COLUMN IS NOT NULL;

-- TB 테이블에서 COL이 T로 시작하거나 Z로 끝나는 값들을 출력
SELECT *
	FROM TB
WHERE COL LIKE 'T%' OR COL LIKE '%Z';

-- TB 테이블에서 A는 A가 아니면서 C는 영어가 포함된 값인 경우 A,B,C 컬럼만 출력
SELECT A, B, C
	FROM TB
WHERE A != 'A' AND REGEXP_LIKE(C, '[a-z|A-Z]');

-- TB테이블에서 A,B 컬럼 출력하되 C가 TEST를 포함한 경우
SELECT A,B
	FROM TB
WHERE 1=1 -- 항상 참인 조건
AND C LIKE '%TEST%';

-- GRADE 명칭 GR로 변경 GRADE 값이 1,2,3,4인 경우에 PASS컬럼으로 A,B,C,D 출력
SELECT GRADE AS GR
    ,	CASE WHEN GRADE = 1 THEN 'A'
    		 WHEN GRADE = 2 THEN 'B'
             WHEN GRADE = 3 THEN 'C'
             WHEN GRADE = 4 THEN 'D'
             WHEN GRADE = 5 THEN 'F'
             END AS PASS
FROM TB;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
728x90

|===== MyInfo =====|

포트폴리오 만드는 과정 기술

 

|===== MyInfo =====|

설계 시각화는 gliffy -> 순서도 툴 이용

 

|===== MyInfo =====|

큰 그림 설명.

 

PORTFOLIO Page -> ToDoPage -> netlify -> expo

 

포트폴리오 작성과 매일 해야하는 ToDoList 작성하고 확인하는 페이지를 만들어서 서버에 배포 후

.apk 파일로 어플로 배포까지 완료를 목표로 작성

 

큰 틀은 잡았고 세부적으로는 version Up 예정.

 

728x90
반응형
728x90

개발환경 세팅이 끝났다.

 

SVN 환경에서 권한을 받아서 사용해야 했으며 개발환경세팅은 3일 정도 걸렸다.

 

대기업이다보니 보안에서 철저해서 하나의 권한을 승인 받는데도 하루 이상 걸렸다.

 

Portable 환경으로 설치하여 개발환경을 용이하게 세팅할 수 있게 했으나 세팅 과정에서

 

apache Tomcat에서 발생한 오류로 인하여 local 모듈을 불러오는 데 애를 많이 먹었다.

 

결국에는 apache tomcat을 날리고 다시 서버를 구축했더니 정상적으로 작동하였다.

 

Portable 환경으로 개발환경 세팅하는 방법에 대해서는 프로젝트가 끝나고 다시 자세하게 공부해봐야 할 것 같다.

 

환경 세팅은 정말 어렵지만 세팅을 못 하면 개발조차 못한다.

 

굉장히 중요한 부분이므로 능숙하게 세팅할 때까지 연습하자~!

 

대기업 HR 재구축 프로젝트

 

기존 AS-IS HR => TO-BE HR 프로젝트 재구축

 

기존의 ASIS 페이지를 참고하여 JSP 파일로 일단 화면단 구성하고 있다.

 

실 개발 시작은 01.18일 시작이다.

 

JSP / Controller / Service / xml 전형적인 MVC 패턴으로 개발한다.

 

 

728x90
반응형

'console.log("What ? " + Cord); > POJECT_DAILY' 카테고리의 다른 글

[개발일기] 2024.02.02  (1) 2024.02.02
[개발일기] 2024.01.11  (0) 2024.01.11
개발자의 일기...230628  (0) 2023.06.28
728x90

2024.01.08 ~ 외부 프로젝트 투입 

 

~ 01.11 개발환경 세팅 완료

 

개발환경세팅 하면서 스스로 무지한 영역이 너무 많아서 부끄러웠다.

 

신입 개발자나 초급 개발자들에게 해주고 싶은 말이 있다.

아니 나중에 내가 더욱 성장하여 신입에게 알려주기 위한 업무설명서를 작성도 하며, 스스로 느낀 점을 피드백 해야겠다.

 

신입 개발자가 가쳐야할 요건은

 

먼저,개발자로써 목표가 패턴 개발자가 될 것인가..응용하여 프레임워크를 짜는 개발자까지 성장해보는 것인가 스스로 자아 성찰을 해보는 것이다.

 

이 선택지의 선택이 성장의 가능성에는 많은 차이가 난다.

이유는 말 안해도 알 것이다.

 

그리고 실무에 들어가기 앞서 정말 많이 IDE를 지우고 다시 설치하고 연습하면 좋겠다.

 

IDE를 설치를 능숙하게 한다면 apache tomcat 서버 구동까지 하고 DB 연결까지 정말 많이 해보면 좋겠다.

 

그렇게 연습을 해도 실무에 나가서 개발환경세팅을 하면 우왕좌왕하는 경우가 많이 생길 것이다.

 

그런 경우 주저하지말고 주변 개발자분들이나 PM 및 현업분들에게 물어봐야한다.

 

스스로 고민해서 해결하는 것도 물론 나쁜 건 아니지만 개발환경세팅 시간을 지체하면 지체할수록 개발할 수 있는 시간은 줄어든다.

 

개발의 반은 개발환경세팅이다.

 

왜 어렵냐면...?

개발자들의 노트북 & 컴퓨터 환경은 가지각색이기 때문이다.

 

그걸 통일해서 세팅하거나 모든 환경에서 오류없이 개발세팅하는 것은 굉장히 까다롭고 어렵다.

 

그걸 잘 해내는 설계 및 개발자의 페이는 계속 성장할 것이다.

 

오늘 모르는 부분들을 찾느라 정신도 없지만 구글링 또한 아는 만큼 검색이 가능하다는 사실이다.

 

localhost:8080 서버 세팅하는데 계속 오류가 났다.

 

처음에는 버전 오류인 줄 알고 버전을 계속 바꿔나갔고, 버전을 재차 확인했는데도 버전에는 문제가 없는데도 오류가 발생해서 eclipse에서 모듈을 아예 날리고 다시 실행했으나 또 오류가 났다.

 

그래서 이번에는 apache tomcat을 날리고 다시 세팅했더니 해결되었다.

 

문제는 apache tomcat이었으나 전체적으로 날려서 원인을 찾지는 못했다.

 

이게 왜 될까? 라는 의문이 떠나질 않는다.

 

프로젝트 마무리 하면 apache tomcat 서버 구동에 대한 원리와 많은 서버 구동을 해봐야 겠다.

 

모르는 건 죄가 아니지만, 모르고 그냥 넘어가면 죄다.

 

모르는 것에 대하여 5분 이상 고민하지 말고 질문해라.

 

감출수록 더 큰 짐이 되어 돌아온다.

 

 

728x90
반응형

'console.log("What ? " + Cord); > POJECT_DAILY' 카테고리의 다른 글

[개발일기] 2024.02.02  (1) 2024.02.02
[개발일기] 2024.01.14  (0) 2024.01.14
개발자의 일기...230628  (0) 2023.06.28
728x90

JS 변수에서 한글만 뽑아내는 방법

let str = 'JavaScript공부하기';

let reg_Kor = /[^가-힣]/g;

reg_Kor.lastIndex = 0;  // lastIndex 초기화

let kor = str.replace(reg_Kor, '');  // 한글이 아닌 부분을 공백으로 처리

console.log(kor);  // 공부하기

 

console.log(typeof(kor));

if(typeof kor === 'string'){
	console.log(true);
} else {
	console.log(false);
}
728x90
반응형
728x90

RESTful API란?

 

두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다.


REST란 무엇인가요?

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다.

 

REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌습니다.

REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있습니다.

쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있습니다.

균일한 인터페이스

균일한 인터페이스는 모든 RESTful 웹 서비스 디자인의 기본입니다. 이는 서버가 표준 형식으로 정보를 전송함을 나타냅니다. 형식이 지정된 리소스를 REST에서 표현이라고 부릅니다. 이 형식은 서버 애플리케이션에 있는 리소스의 내부 표현과 다를 수 있습니다. 예를 들어, 서버는 데이터를 텍스트로 저장하되, HTML 표현 형식으로 전송할 수 있습니다.

균일한 인터페이스에는 4가지 아키텍처 제약 조건이 있습니다.

  1. 요청은 리소스를 식별해야 합니다. 이를 위해 균일한 리소스 식별자를 사용합니다.
  2. 클라이언트는 원하는 경우 리소스를 수정하거나 삭제하기에 충분한 정보를 리소스 표현에서 가지고 있습니다. 서버는 리소스를 자세히 설명하는 메타데이터를 전송하여 이 조건을 충족합니다.
  3. 클라이언트는 표현을 추가로 처리하는 방법에 대한 정보를 수신합니다. 이를 위해 서버는 클라이언트가 리소스를 적절하게 사용할 수 있는 방법에 대한 메타데이터가 포함된 명확한 메시지를 전송합니다.
  4. 클라이언트는 작업을 완료하는 데 필요한 다른 모든 관련 리소스에 대한 정보를 수신합니다. 이를 위해 서버는 클라이언트가 더 많은 리소스를 동적으로 검색할 수 있도록 표현에 하이퍼링크를 넣어 전송합니다.

무상태

REST 아키텍처에서 무상태는 서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요청을 완료하는 통신 방법을 나타냅니다. 클라이언트는 임의의 순서로 리소스를 요청할 수 있으며 모든 요청은 무상태이거나 다른 요청과 분리됩니다. 이 REST API 설계 제약 조건은 서버가 매번 요청을 완전히 이해해서 이행할 수 있음을 의미합니다. 

계층화 시스템

계층화된 시스템 아키텍처에서 클라이언트는 클라이언트와 서버 사이의 다른 승인된 중개자에게 연결할 수 있으며 여전히 서버로부터도 응답을 받습니다. 서버는 요청을 다른 서버로 전달할 수도 있습니다. 클라이언트 요청을 이행하기 위해 함께 작동하는 보안, 애플리케이션 및 비즈니스 로직과 같은 여러 계층으로 여러 서버에서 실행되도록 RESTful 웹 서비스를 설계할 수 있습니다. 이러한 계층은 클라이언트에 보이지 않는 상태로 유지됩니다.

캐시 가능성

RESTful 웹 서비스는 서버 응답 시간을 개선하기 위해 클라이언트 또는 중개자에 일부 응답을 저장하는 프로세스인 캐싱을 지원합니다. 예를 들어 모든 페이지에 공통 머리글 및 바닥글 이미지가 있는 웹 사이트를 방문한다고 가정해 보겠습니다. 새로운 웹 사이트 페이지를 방문할 때마다 서버는 동일한 이미지를 다시 전송해야 합니다. 이를 피하기 위해 클라이언트는 첫 번째 응답 후에 해당 이미지를 캐싱하거나 저장한 다음 캐시에서 직접 이미지를 사용합니다. RESTful 웹 서비스는 캐시 가능 또는 캐시 불가능으로 정의되는 API 응답을 사용하여 캐싱을 제어합니다.

온디맨드 코드

REST 아키텍처 스타일에서 서버는 소프트웨어 프로그래밍 코드를 클라이언트에 전송하여 클라이언트 기능을 일시적으로 확장하거나 사용자 지정할 수 있습니다. 예를 들어, 웹 사이트에서 등록 양식을 작성하면 브라우저는 잘못된 전화번호와 같은 실수를 즉시 강조 표시합니다. 서버에서 전송한 코드로 인해 이 작업을 수행할 수 있습니다.


API란 무엇인가요?

애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성합니다. 예를 들어, 근무 시간 기록 애플리케이션은 직원의 전체 이름과 날짜 범위를 요청하는 API를 표시합니다. 이 정보가 수신되면 내부적으로 직원의 근무 시간 기록을 처리하고 해당 날짜 범위에서 근무한 시간을 반환합니다.

웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있습니다.

클라이언트

클라이언트는 웹에서 정보에 액세스하려는 사용자입니다. 클라이언트는 API를 사용하는 사람이거나 소프트웨어 시스템일 수 있습니다. 예를 들어 개발자는 날씨 시스템에서 날씨 데이터에 액세스하는 프로그램을 작성할 수 있습니다. 또는 사용자가 날씨 웹 사이트를 직접 방문할 때 브라우저에서 동일한 데이터에 액세스할 수 있습니다.

리소스

리소스는 다양한 애플리케이션이 클라이언트에게 제공하는 정보입니다. 리소스는 이미지, 동영상, 텍스트, 숫자 또는 모든 유형의 데이터일 수 있습니다. 클라이언트에 리소스를 제공하는 시스템을 서버라고도 합니다. 조직은 API를 사용하여 리소스를 공유하고 보안, 제어 및 인증을 유지하면서 웹 서비스를 제공합니다. 또한 API는 특정 내부 리소스에 액세스할 수 있는 클라이언트를 결정하는 데 도움이 됩니다.


RESTful API를 사용하면 어떤 이점이 있나요?

RESTful API에는 다음과 같은 이점이 있습니다.

확장성

REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있습니다. 무상태는 서버가 과거 클라이언트 요청 정보를 유지할 필요가 없기 때문에 서버 로드를 제거합니다. 잘 관리된 캐싱은 일부 클라이언트-서버 상호 작용을 부분적으로 또는 완전히 제거합니다. 이러한 모든 기능은 성능을 저하시키는 통신 병목 현상을 일으키지 않으면서 확장성을 지원합니다.

유연성

RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원합니다. 각 부분이 독립적으로 발전할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리합니다. 서버 애플리케이션의 플랫폼 또는 기술 변경은 클라이언트 애플리케이션에 영향을 주지 않습니다. 애플리케이션 함수를 계층화하는 기능은 유연성을 더욱 향상시킵니다. 예를 들어, 개발자는 애플리케이션 로직을 다시 작성하지 않고도 데이터베이스 계층을 변경할 수 있습니다.

독립성

REST API는 사용되는 기술과 독립적입니다. API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있습니다. 또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경할 수 있습니다.


 

RESTful API는 어떻게 작동하나요?

RESTful API의 기본 기능은 인터넷 브라우징과 동일합니다. 클라이언트는 리소스가 필요할 때 API를 사용하여 서버에 접속합니다. API 개발자는 서버 애플리케이션 API 문서에서 클라이언트가 REST API를 어떻게 사용해야 하는지 설명합니다. 다음은 모든 REST API 호출에 대한 일반 단계입니다.

  1. 클라이언트가 서버에 요청을 전송합니다. 클라이언트가 API 문서에 따라 서버가 이해하는 방식으로 요청 형식을 지정합니다.
  2. 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인합니다.
  3. 서버가 요청을 수신하고 내부적으로 처리합니다.
  4. 서버가 클라이언트에 응답을 반환합니다. 응답에는 요청이 성공했는지 여부를 클라이언트에 알려주는 정보가 포함됩니다. 응답에는 클라이언트가 요청한 모든 정보도 포함됩니다.

REST API 요청 및 응답 세부 정보는 API 개발자가 API를 설계하는 방식에 따라 약간씩 다릅니다.


RESTful API 클라이언트 요청에는 무엇이 포함되어 있나요?

RESTful API에는 다음과 같은 주요 구성요소를 포함하는 요청이 필요합니다.

고유 리소스 식별자

서버는 고유한 리소스 식별자로 각 리소스를 식별합니다. REST 서비스의 경우 서버는 일반적으로 URL(Uniform Resource Locator)을 사용하여 리소스 식별을 수행합니다. URL은 리소스에 대한 경로를 지정합니다. URL은 웹페이지를 방문하기 위해 브라우저에 입력하는 웹 사이트 주소와 유사합니다. URL은 요청 엔드포인트라고도 하며 클라이언트가 요구하는 사항을 서버에 명확하게 지정합니다.

메서드

개발자는 종종 Hypertext Transfer Protocol(HTTP)을 사용하여 RESTful API를 구현합니다. HTTP 메서드는 리소스에 수행해야 하는 작업을 서버에 알려줍니다. 다음은 4가지의 일반적인 HTTP 메서드입니다.

GET

클라이언트는 GET을 사용하여 서버의 지정된 URL에 있는 리소스에 액세스합니다. GET 요청을 캐싱하고 RESTful API 요청에 파라미터를 넣어 전송하여 전송 전에 데이터를 필터링하도록 서버에 지시할 수 있습니다.

POST

클라이언트는 POST를 사용하여 서버에 데이터를 전송합니다. 여기에는 요청과 함께 데이터 표현이 포함됩니다. 동일한 POST 요청을 여러 번 전송하면 동일한 리소스를 여러 번 생성하는 부작용이 있습니다.

PUT

클라이언트는 PUT을 사용하여 서버의 기존 리소스를 업데이트합니다. POST와 달리, RESTful 웹 서비스에서 동일한 PUT 요청을 여러 번 전송해도 결과는 동일합니다.

DELETE

클라이언트는 DELETE 요청을 사용하여 리소스를 제거합니다. DELETE 요청은 서버 상태를 변경할 수 있습니다. 하지만 사용자에게 적절한 인증이 없으면 요청은 실패합니다.

HTTP 헤더

요청 헤더는 클라이언트와 서버 간에 교환되는 메타데이터입니다. 예를 들어, 요청 헤더는 요청 및 응답의 형식을 나타내고 요청 상태 등에 대한 정보를 제공합니다.

데이터

REST API 요청에는 POST, PUT 및 기타 HTTP 메서드가 성공적으로 작동하기 위한 데이터가 포함될 수 있습니다.

파라미터

RESTful API 요청에는 수행해야 할 작업에 대한 자세한 정보를 서버에 제공하는 파라미터가 포함될 수 있습니다. 다음은 몇 가지 파라미터 유형입니다.

  • URL 세부정보를 지정하는 경로 파라미터.
  • 리소스에 대한 추가 정보를 요청하는 쿼리 파라미터.
  • 클라이언트를 빠르게 인증하는 쿠키 파라미터.
728x90
반응형

+ Recent posts

728x90
반응형
728x90
반응형