Commit 날짜 변경하는 방법 정리

 

개발자라면 1일 1커밋 운동을 목표로 열심히 잔디를 심는 경우가 많다.

나처럼 게으른 개발자 취준생은 이따가 해야지 5분만 잤다가 일어나서 해야지 하다가 다음날 새벽에 일어나는 경우

커밋을 못해 비어있는 칸에 잔디심는 방법을 정리해서 간간히 써먹어 보려고 한다.

 

Commit 날짜 변경 방법

 

1. Github Login 후 우측 상단에서 + 모양 클릭 → New repository 마우스로 클릭

2. Repository Name 입력 → Public 선택 → Create repository 마우스로 클릭

 

3. 커밋할 폴더를 선택하여 마우스 우클릭 → Git Bash Here 마우스로 클릭

4. 초반 세팅 명령어

git init   # 새로운 repository를 만들고 Git으로 프로젝트 관리를 시작할 때는 다음 명령어을 입력
git status # Git으로 작업을 할 때 어떤 파일이 변경되었는지, 추가되었는지 등 전부 확인 가능
git add .  # 폴더 내에 있는 파일 전체 add

# 다른 방법

git init
vi test3.txt
git status
git add .  # 폴더 내에 있는 파일 전체 add
git add test3.txt

 

5. Commit 명령어 실행

git commit -m "Commit Message" # 명령어
git commit -m "first commit"   # 실제 사용한 명령어

 

6. Repository에 Code Push

git remote add origin [repository 주소]
git remote -v
git push -u orign master

### 실제 사용한 명령어
git remote add origin https://github.com/DevYJShin/git_test 
git remote -v
git push -u origin master

7. Commit 여부는 Github Repository Page에서 확인 가능

# git push 명령어를 실행하면 GitHub 유저네임과 비밀번호를 입력
# 성공적으로 push 되었다면 GitHub repository 페이지에서 확인 가능

8. 이제 비어있는 칸에 잔디를 심어보자.

9. Commit 날짜 수정 명령어

Commit 날짜 수정 방법은 과거 Commit과 현재 Commit 2가지가 있는데, 

과거 Commit의 경우 복잡해서 저같은 초보가 건들기에는 어려우니 현재 Commit으로 날짜 수정하는 방법을 정리해보고자 한다.

git commit --amend --no-edit --date "$(date)"
git commit --amend --no-edit --date "Fri 14 Jan 2022 20:00:00 KST"
git rebase --continue      # 굳이 안해도 되나?
git push -f origin master

10. Commit 날짜 변경 후 반영 여부 확인

 

1일 1커밋 미루지 말자 다들 화이팅!

 

 출처

 

* Github Commit 방법

https://velog.io/@kho5420/Git-GitHub-%EB%A0%88%ED%8C%8C%EC%A7%80%ED%86%A0%EB%A6%ACRepository-%EC%83%9D%EC%84%B1%ED%95%98%EA%B3%A0-%EC%86%8C%EC%8A%A4-%EC%98%AC%EB%A6%AC%EA%B8%B0

* Github Commit 날짜 수정 방법

https://scl2589.github.io/git/edit-commit-date/

 

커밋 날짜를 수정하는 방법

Commit 날짜 수정하는 방법을 알아보았습니다.

scl2589.github.io

 

 

'Github' 카테고리의 다른 글

[Github] Contribution Color Graph  (0) 2022.01.28
[Github] Activity Overview 설정  (0) 2022.01.28
[Github] Commit Graph 3D  (0) 2022.01.28
[Github] 잔디 먹는 뱀 만들기  (0) 2022.01.01

1차원 배열 추가 및 삭제

 

 

 1차원 배열 추가

 

'''
   1차원 배열 추가
   1) np.append(arr, 값, axis=0)
    ==> 값 추가해서 새로운 벡터 반환
    ==> axis=0이 기본이고 행축을 고정한다는 의미이다.
       따라서 열이 추가됨
   2) np.insert(arr, 위치(idx|fancy), 값, axis=0)

'''
import numpy as np
list_value= [10,20,30,40,50]
arr = np.array(list_value)
print(arr)

# 1) np.append(arr, 값, axis=0)
arr2 = np.append(arr, 100)
print(arr2) # [ 10  20  30  40  50 100]
print("원보:", arr) # [10 20 30 40 50]

arr2 = np.append(arr, [100,300])
print(arr2) # [ 10  20  30  40  50 100 300]

# 2) np.insert
list_value= [10,20,30,40,50]
arr = np.array(list_value)
arr2 = np.insert(arr,0, 100) # 색인: 인덱싱
print(arr2) # [100  10  20  30  40  50]
arr2 = np.insert(arr,[0,2], 100) # 색인: fancy 색인(정수형 색인)
print(arr2) # [100  10  20 100  30  40  50]

arr2 = np.insert(arr,[0,2,1], 100) # 색인: fancy 색인(정수형 색인)
print(arr2) # [100  10 100  20 100  30  40  50]

* 출력 화면

 1차원 배열 삭제

 

'''
   1차원 배열 삭제
   1) np.delete(arr, 위치(idx|fancy|np.s_[s:e]), axis )


'''
import numpy as np

list_value= [10,20,30,40,50]
arr = np.array(list_value)
print(arr)

arr2 = np.delete(arr, 0)  # 색인: 인덱싱
print(arr2) # [20 30 40 50]

arr2 = np.delete(arr, -1)  # 색인: 인덱싱
print(arr2) # [20 30 40 50]

arr2 = np.delete(arr, [0,2,3])  # 색인: fancy 색인(정수형 색인)
print(arr2) # [20 50]

arr2 = np.delete(arr, [0,2,-1])  # 색인: fancy 색인(정수형 색인)
print(arr2) # [20 40]

# 슬라이싱 삭제
list_value= [10,20,30,40,50]
arr = np.array(list_value)

arr2 = np.delete(arr, np.s_[1:4])  # 색인: 슬라이싱 ==>  np.s_[s:e]
print(arr2) # [20 30 40 50]

* 출력 화면

 

 출처

 

 

+ 강의 교재

'AI Bootcamp > Numpy' 카테고리의 다른 글

[Numpy] 1일차_1차원 배열 생성  (0) 2022.04.19
[Numpy] 1일차_0차열 배열  (0) 2022.04.19

1차원 배열 생성

 

 

 1차원 배열 생성_Vector1_array 함수

 

'''
   배열생성
   1차원 배열:  벡터(vector)
   가. np.array(리스트)

'''
import numpy as np

# 1. 벡터 생성
list_value= [10,20,30]
vector_value = np.array(list_value)

print("list_value:", list_value, type(list_value)) # [10, 20, 30] <class 'list'>
print("vector_value:", vector_value, type(vector_value)) # [10 20 30] <class 'numpy.ndarray'>

* 출력 화면

 

 1차원 배열 생성_Vector2_array 함수2_list와 vector 차이점

 

'''
   배열생성
   1차원 배열:  벡터(vector)
   가. np.array(리스트)

'''
import numpy as np

# 1. 벡터 생성
list_value= [10,20,30]
vector_value = np.array(list_value)

print("list_value:", list_value, type(list_value)) # [10, 20, 30] <class 'list'>
print("vector_value:", vector_value, type(vector_value)) # [10 20 30] <class 'numpy.ndarray'>

# 2. 파이썬의 리스트 vs 벡터
# 가. 벡터는 자동으로 형변환이 된다. ==> 반드시 동일한 타입만 저장 가능하다.
list_value= [10,20,30,"A"]
list_value= [10,20,30,4.]
print(list_value)
vector_value = np.array(list_value)
print(vector_value)

# 나. 벡터화 연산: 벡터와 스칼라 연산
list_value= [10,20,30]
result = list_value * 2 # [10, 20, 30, 10, 20, 30]
print("파이썬의 결과:", result)
vector_value = np.array(list_value)
result = vector_value * 2 # [10 20 30] * 2 = [20 40 60] , 벡터화 연산(요소간 연산, 매우중요한 특징)
print("벡터 결과:", result)

# 다. 벡터화 연산: 벡터와 벡터 연산
list_value= [90,80,70]
list_value2= [10,20,30]
result = list_value + list_value2 # [90, 80, 70, 10, 20, 30]
print(result)

vector_value = np.array(list_value)
vector_value2 = np.array(list_value2)
result = vector_value + vector_value2 # [100 100 100],요소간 연산
print(result)

# 라. 얕은 복사(주소값복사) 와 깊은 복사(실제값복사)
list_value= [90,80,70]
s = list_value[:]  # 파이썬의 슬라이싱은 깊은복사,   list(), .copy()
list_value[0]=900
print(list_value)
print(s)

list_value= [10,20,30]
vector_value = np.array(list_value)
s = vector_value[:] # 벡터의 슬라이싱은 얕은복사 ==> 성능 때문에
vector_value[0]=100
print(vector_value)
print(s)

# 벡터의 깊은복사(실제값복사) 방법
list_value= [10,20,30]
vector_value = np.array(list_value)
# new_vector_value = vector_value.copy()
new_vector_value = np.copy(vector_value)
vector_value[0]= 100

print(vector_value) # [100  20  30]
print(new_vector_value) # [10 20 30] , 깊은복사이기 때문에 수정 안됨.

* 출력 화면

 

 1차원 배열 생성_Vector3_array 함수3_속성

 

'''
   배열생성
   1차원 배열:  벡터(vector)
   가. np.array(리스트)
   나. 속성
     print(dir(변수))


'''
import numpy as np

# 1. 벡터 생성
list_value= [10,20,30]
vector_value = np.array(list_value)
print("vector_value:", vector_value, type(vector_value)) # [10 20 30] <class 'numpy.ndarray'>

print("벡터의 차원크기:", vector_value.ndim) # 1
print("벡터의 형상(모양):", vector_value.shape) # (3,)  # 매우 중요하다.
print("벡터의 요소갯수:", vector_value.size) # 3
print("벡터의 요소타입:", vector_value.dtype) # int32

# print(dir(np))
# print(dir(vector_value))
'''
['T', '__abs__', '__add__', '__and__', '__array__', '__array_finalize__', '__array_function__', 
'__array_interface__', '__array_prepare__', '__array_priority__', '__array_struct__', 
'__array_ufunc__', '__array_wrap__', '__bool__', '__class__', '__class_getitem__', 
'__complex__', '__contains__', '__copy__', '__deepcopy__', '__delattr__', '__delitem__', 
'__dir__', '__divmod__', '__dlpack__', '__dlpack_device__', '__doc__', '__eq__', '__float__', 
'__floordiv__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', 
'__iadd__', '__iand__', '__ifloordiv__', '__ilshift__', '__imatmul__', '__imod__', '__imul__', '__index__', 
'__init__', '__init_subclass__', '__int__', '__invert__', '__ior__', '__ipow__', '__irshift__', '__isub__', '__iter__', 
'__itruediv__', '__ixor__', '__le__', '__len__', '__lshift__', '__lt__', '__matmul__', '__mod__', '__mul__', '__ne__', 
'__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', 
'__repr__', '__rfloordiv__', '__rlshift__', '__rmatmul__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', 
'__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__setitem__', '__setstate__', '__sizeof__', '__str__', 
'__sub__', '__subclasshook__', '__truediv__', '__xor__', 


'all', 'any', 'argmax', 'argmin', 'argpartition', 'argsort', 'astype', 'base', 'byteswap', 
'choose', 'clip', 'compress', 'conj', 'conjugate', 'copy', 'ctypes', 'cumprod', 'cumsum', 'data', 
'diagonal', 'dot', 'dtype', 'dump', 'dumps', 'fill', 'flags', 'flat', 'flatten', 'getfield', 'imag', 
'item', 'itemset', 'itemsize', 'max', 'mean', 'min', 'nbytes', 'ndim', 'newbyteorder', 'nonzero', 'partition', 
'prod', 'ptp', 'put', 'ravel', 'real', 'repeat', 'reshape', 'resize', 'round', 'searchsorted', 'setfield', 
'setflags', 'shape', 'size', 'sort', 'squeeze', 'std', 'strides', 'sum', 'swapaxes', 'take', 'tobytes', 'tofile', 
'tolist', 'tostring', 'trace', 'transpose', 'var', 'view']
'''

* 출력 화면

 

 

 1차원 배열 생성_Vector4_랜덤 함수

 

'''
   배열생성
   1차원 배열:  벡터(vector)
   가. np.array(리스트)
   나. 랜덤함수
      np.random.random() : [0.0  1.0) 범위값 반환
      np.random.random(size) : [0.0  1.0) 범위값에서 size만큼 반환
      np.random.rand()    : 0~1사이의 균등분포에서 반환, 뽑힐 확률 동일
      np.random.randn()    : 정규분포에서 반환, 평균이 0이고 표준편차 1 ==> N(0,1)
      np.random.randint(low, high=None) : high 미지정시 범위:  [0 low) ==> 0<= 값 <low
      np.random.randint(low, high) :   [low high) ==> low<= 값 <high


'''
import numpy as np
# 랜덤값 고정 ==> seed 고정
# np.random.seed(1234)

arr = np.random.random() # [0.0  1.0) ==> 범위   0.0 <=    <1.0
print("random() 함수:", arr, type(arr))  # <class 'float'>

arr = np.random.random(3) # [0.0  1.0) ==> 범위   0.0 <=    <1.0
print("random(size) 함수:", arr, type(arr)) # <class 'numpy.ndarray'>

arr = np.random.rand() # [0.0  1.0) ==> 범위   0.0 <=    <1.0
print("rand() 함수:", arr, type(arr)) # <class 'float'>

arr = np.random.rand(5) # [0.0  1.0) ==> 범위   0.0 <=    <1.0
print("rand(size) 함수:", arr, type(arr)) # <class 'numpy.ndarray'>

arr = np.random.randn() # [0.0  1.0) ==> 범위   0.0 <=    <1.0
print("randn() 함수:", arr, type(arr)) # <class 'float'>

arr = np.random.randn(7) # [0.0  1.0) ==> 범위   0.0 <=    <1.0
print("randn(size) 함수:", arr, type(arr)) # <class 'numpy.ndarray'>

arr = np.random.randint(5) # 0 ~ 4까지의 랜덤값 반환
print("randint(low) 함수:", arr, type(arr)) # <class 'int'>

arr = np.random.randint(1,3) # 1<=  < 3까지의 랜덤값 반환
print("randint(low, high) 함수:", arr, type(arr)) # <class 'int'>

arr = np.random.choice(["A","B","C"])
print("choice()", arr)

list_value=[5,2,56,67]
np.random.shuffle(list_value)
print(list_value)


# print(dir(np.random))
'''
['BitGenerator', 'Generator', 'MT19937', 'PCG64', 'PCG64DXSM', 'Philox', 
'RandomState', 'SFC64', 'SeedSequence', '__RandomState_ctor', '__all__', '__builtins__', 
'__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', 
'__spec__', '_bounded_integers', '_common', '_generator', '_mt19937', '_pcg64', 
'_philox', '_pickle', '_sfc64', 

'beta', 'binomial', 'bit_generator', 'bytes', 'chisquare', 'choice', 
'default_rng', 'dirichlet', 'exponential', 'f', 'gamma', 'geometric', 
'get_state', 'gumbel', 'hypergeometric', 'laplace', 'logistic', 'lognormal', 
'logseries', 'mtrand', 'multinomial', 'multivariate_normal', 'negative_binomial', 
'noncentral_chisquare', 'noncentral_f', 'normal', 'pareto', 'permutation', 
'poisson', 'power', 'rand', 'randint', 'randn', 'random', 'random_integers', 
'random_sample', 'ranf', 'rayleigh', 'sample', 'seed', 
'set_state', 'shuffle', 'standard_cauchy', 'standard_exponential', 
'standard_gamma', 'standard_normal', 'standard_t', 'test', 'triangular', 
'uniform', 'vonmises', 'wald', 'weibull', 'zipf']
'''

* 출력 화면

 

 1차원 배열 생성_Vector5_zeros_ones

 

'''
   배열생성
   1차원 배열:  벡터(vector)
   가. np.array(리스트)
   나. 랜덤함수
      np.random.random() : [0.0  1.0) 범위값 반환
      np.random.random(size) : [0.0  1.0) 범위값에서 size만큼 반환
      np.random.rand()    : 0~1사이의 균등분포에서 반환, 뽑힐 확률 동일
      np.random.randn()    : 정규분포에서 반환, 평균이 0이고 표준편차 1 ==> N(0,1)
      np.random.randint(low, high=None) : high 미지정시 범위:  [0 low) ==> 0<= 값 <low
      np.random.randint(low, high) :   [low high) ==> low<= 값 <high

   다. np.zeros(size, dtype=타입)
      ==> 모든 요소를  0.0 으로 채운 벡터 반환

   라. np.ones(size, dtype=타입)
      ==> 모든 요소를  1.0 으로 채운 벡터 반환
   마. np.empty(size, dtype=타입)
      ==> 임의의 값으로 초기화 됨, 값이 작으면 대부분이 1로 설정됨.
          임의의 값 초기화 확인 위해서는 size 늘려서 실습한다.

   마. np.full(size, 값, , dtype=타입)
      ==> 지정된 값으로 초기화 됨
'''
import numpy as np

arr = np.zeros(5)
print("zeros(size):" , arr) # [0. 0. 0. 0. 0.]
arr = np.zeros(5, dtype=int) # dtype=np.int32
print("zeros(size, dtype=int):" , arr) # [0 0 0 0 0]

arr = np.ones(5)
print("ones(size):" , arr) # [1. 1. 1. 1. 1.]
arr = np.ones(5, dtype=int) # dtype=np.int32
print("ones(size, dtype=int):" , arr) # [1 1 1 1 1]

arr = np.empty(5)
print("empty(size):" , arr) #
arr = np.empty(5, dtype=int) # dtype=np.int32
print("empty(size, dtype=int):" , arr)

arr = np.full(4, 100, dtype=int) # dtype=np.int32
print("full(size, 값, , dtype=타입):" , arr) # [100 100 100 100]

* 출력 화면

 1차원 배열 생성_Vector6_arange 함수

 

'''
   배열생성
   1차원 배열:  벡터(vector)
   가. np.array(리스트)
   나. 랜덤함수
      np.random.random() : [0.0  1.0) 범위값 반환
      np.random.random(size) : [0.0  1.0) 범위값에서 size만큼 반환
      np.random.rand()    : 0~1사이의 균등분포에서 반환, 뽑힐 확률 동일
      np.random.randn()    : 정규분포에서 반환, 평균이 0이고 표준편차 1 ==> N(0,1)
      np.random.randint(low, high=None) : high 미지정시 범위:  [0 low) ==> 0<= 값 <low
      np.random.randint(low, high) :   [low high) ==> low<= 값 <high

   다. np.zeros(size, dtype=타입)
      ==> 모든 요소를  0.0 으로 채운 벡터 반환

   라. np.ones(size, dtype=타입)
      ==> 모든 요소를  1.0 으로 채운 벡터 반환
   마. np.empty(size, dtype=타입)
      ==> 임의의 값으로 초기화 됨, 값이 작으면 대부분이 1로 설정됨.
          임의의 값 초기화 확인 위해서는 size 늘려서 실습한다.

   마. np.full(size, 값, , dtype=타입)
      ==> 지정된 값으로 초기화 됨

   바. np.arange([start],stop[,step], dtype=타입)
    ==> 파이썬의 range()함수 유사하다.
'''
import numpy as np

arr = np.arange(5) # np.arange(stop) ==> [0 5)범위의 벡터 반환
print("arange(stop):", arr) # [0 1 2 3 4]

arr = np.arange(1,5) # np.arange(start, stop) ==> [1 5)범위의 벡터 반환
print("arange(start, stop):", arr) # [1 2 3 4]

arr = np.arange(1,10,2) # np.arange(start, stop, step) ==> [1 10)범위의 2step 벡터 반환
print("arange(start, stop, step):", arr) # [1 3 5 7 9]

# 실수값 반환
arr = np.arange(5, dtype=np.float32) # np.arange(stop, dtype=타입) ==> [0 5)범위의 벡터 반환
print("arange(stop):", arr) # [0. 1. 2. 3. 4.]

arr = np.arange(5.)
print("arange(stop):", arr) # [0. 1. 2. 3. 4.]

* 출력 화면

 1차원 배열 생성_Vector7_linspace 함수

 

'''
   배열생성
   1차원 배열:  벡터(vector)
   가. np.array(리스트)
   나. 랜덤함수
      np.random.random() : [0.0  1.0) 범위값 반환
      np.random.random(size) : [0.0  1.0) 범위값에서 size만큼 반환
      np.random.rand()    : 0~1사이의 균등분포에서 반환, 뽑힐 확률 동일
      np.random.randn()    : 정규분포에서 반환, 평균이 0이고 표준편차 1 ==> N(0,1)
      np.random.randint(low, high=None) : high 미지정시 범위:  [0 low) ==> 0<= 값 <low
      np.random.randint(low, high) :   [low high) ==> low<= 값 <high

   다. np.zeros(size, dtype=타입)
      ==> 모든 요소를  0.0 으로 채운 벡터 반환

   라. np.ones(size, dtype=타입)
      ==> 모든 요소를  1.0 으로 채운 벡터 반환
   마. np.empty(size, dtype=타입)
      ==> 임의의 값으로 초기화 됨, 값이 작으면 대부분이 1로 설정됨.
          임의의 값 초기화 확인 위해서는 size 늘려서 실습한다.

   마. np.full(size, 값, , dtype=타입)
      ==> 지정된 값으로 초기화 됨

   바. np.arange([start],stop[,step], dtype=타입)
    ==> 파이썬의 range()함수 유사하다.

   사.  np.linspace(start, stop, size)
    ==> 시각화할때 많이 사용됨.
'''
import numpy as np

arr = np.linspace(1,10,10)
print("np.linspace(1,10,10):", arr) # [ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

arr = np.linspace(1,10,10,endpoint=False)
print("np.linspace(1,10,10):", arr) # [1.  1.9 2.8 3.7 4.6 5.5 6.4 7.3 8.2 9.1]

arr = np.linspace(0,1,11)
print("np.linspace(0,1,11):", arr) # [0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]

* 출력 화면

 출처

 

 

+ 강의 교재

'AI Bootcamp > Numpy' 카테고리의 다른 글

[Numpy] 1일차_1차열 배열 추가 및 삭제  (0) 2022.04.19
[Numpy] 1일차_0차열 배열  (0) 2022.04.19

0차원 배열 

 

 

 스칼라 array 함수

 

'''
   배열생성
   0차원 배열:  스칼라
'''
import numpy as np
print("numpy 버전:", np.__version__) # numpy 버전: 1.22.3

# 1. 스칼라 생성
s = np.array(10)

print("값:", s) # 10
print("타입:", type(s)) # <class 'numpy.ndarray'>
print("차원:", s.ndim) # 0
print("형상(모양):", s.shape) # ()

print(dir(np))
'''
['ALLOW_THREADS', 'AxisError', 'BUFSIZE', 'CLIP', 'ComplexWarning', 'DataSource', 
'ERR_CALL', 'ERR_DEFAULT', 'ERR_IGNORE', 'ERR_LOG', 'ERR_PRINT', 'ERR_RAISE', 
'ERR_WARN', 'FLOATING_POINT_SUPPORT', 'FPE_DIVIDEBYZERO', 'FPE_INVALID', 'FPE_OVERFLOW', 
'FPE_UNDERFLOW', 'False_', 'Inf', 'Infinity', 'MAXDIMS', 'MAY_SHARE_BOUNDS', 'MAY_SHARE_EXACT', 
'ModuleDeprecationWarning', 'NAN', 'NINF', 'NZERO', 'NaN', 'PINF', 'PZERO', 'RAISE', 'RankWarning', 
'SHIFT_DIVIDEBYZERO', 'SHIFT_INVALID', 'SHIFT_OVERFLOW', 'SHIFT_UNDERFLOW', 'ScalarType', 
'Tester', 'TooHardError', 'True_', 'UFUNC_BUFSIZE_DEFAULT', 'UFUNC_PYVALS_NAME', 
'VisibleDeprecationWarning', 'WRAP', '_CopyMode', '_NoValue', '_UFUNC_API', '__NUMPY_SETUP__', 
'__all__', '__builtins__', '__cached__', '__config__', '__deprecated_attrs__', '__dir__', 
'__doc__', '__expired_functions__', '__file__', '__getattr__', '__git_version__', '__loader__', 
'__name__', '__package__', '__path__', '__spec__', '__version__', '_add_newdoc_ufunc', 
'_distributor_init', '_financial_names', '_from_dlpack', '_globals', '_mat', '_pytesttester', 
'_version', 

'abs', 'absolute', 'add', 'add_docstring', 'add_newdoc', 'add_newdoc_ufunc', 
'alen', 'all', 'allclose', 'alltrue', 'amax', 'amin', 'angle', 'any', 'append', 
'apply_along_axis', 'apply_over_axes', 'arange', 'arccos', 'arccosh', 'arcsin', 
'arcsinh', 'arctan', 'arctan2', 'arctanh', 'argmax', 'argmin', 'argpartition', 
'argsort', 'argwhere', 'around', 'array', 'array2string', 'array_equal', 'array_equiv', 
'array_repr', 'array_split', 'array_str', 'asanyarray', 'asarray', 'asarray_chkfinite', 
'ascontiguousarray', 'asfarray', 'asfortranarray', 'asmatrix', 'asscalar', 'atleast_1d', 
'atleast_2d', 'atleast_3d', 'average', 'bartlett', 'base_repr', 'binary_repr', 'bincount', 
'bitwise_and', 'bitwise_not', 'bitwise_or', 'bitwise_xor', 'blackman', 'block', 'bmat', 
'bool8', 'bool_', 'broadcast', 'broadcast_arrays', 'broadcast_shapes', 'broadcast_to', 
'busday_count', 'busday_offset', 'busdaycalendar', 'byte', 'byte_bounds', 'bytes0', 
'bytes_', 'c_', 'can_cast', 'cast', 'cbrt', 'cdouble', 'ceil', 'cfloat', 'char', 
'character', 'chararray', 'choose', 'clip', 'clongdouble', 'clongfloat', 'column_stack', 
'common_type', 'compare_chararrays', 'compat', 'complex128', 'complex64', 'complex_', 
'complexfloating', 'compress', 'concatenate', 'conj', 'conjugate', 'convolve', 'copy', 
'copysign', 'copyto', 'core', 'corrcoef', 'correlate', 'cos', 'cosh', 'count_nonzero', 
'cov', 'cross', 'csingle', 'ctypeslib', 'cumprod', 'cumproduct', 'cumsum', 'datetime64', 
'datetime_as_string', 'datetime_data', 'deg2rad', 'degrees', 'delete', 'deprecate', 
'deprecate_with_doc', 'diag', 'diag_indices', 'diag_indices_from', 'diagflat', 'diagonal', 
'diff', 'digitize', 'disp', 'divide', 'divmod', 'dot', 'double', 'dsplit', 'dstack', 'dtype', 
'e', 'ediff1d', 'einsum', 'einsum_path', 'emath', 'empty', 'empty_like', 'equal', 'errstate', 
'euler_gamma', 'exp', 'exp2', 'expand_dims', 'expm1', 'extract', 'eye', 'fabs', 'fastCopyAndTranspose', 
'fft', 'fill_diagonal', 'find_common_type', 'finfo', 'fix', 'flatiter', 'flatnonzero', 'flexible', 
'flip', 'fliplr', 'flipud', 'float16', 'float32', 'float64', 'float_', 'float_power', 'floating', 
'floor', 'floor_divide', 'fmax', 'fmin', 'fmod', 'format_float_positional', 'format_float_scientific', 
'format_parser', 'frexp', 'frombuffer', 'fromfile', 'fromfunction', 'fromiter', 'frompyfunc', 
'fromregex', 'fromstring', 'full', 'full_like', 'gcd', 'generic', 'genfromtxt', 'geomspace', 
'get_array_wrap', 'get_include', 'get_printoptions', 'getbufsize', 'geterr', 'geterrcall', 
'geterrobj', 'gradient', 'greater', 'greater_equal', 'half', 'hamming', 'hanning', 'heaviside', 
'histogram', 'histogram2d', 'histogram_bin_edges', 'histogramdd', 'hsplit', 'hstack', 'hypot', 
'i0', 'identity', 'iinfo', 'imag', 'in1d', 'index_exp', 'indices', 'inexact', 'inf', 'info', 
'infty', 'inner', 'insert', 'int0', 'int16', 'int32', 'int64', 'int8', 'int_', 'intc', 'integer', 
'interp', 'intersect1d', 'intp', 'invert', 'is_busday', 'isclose', 'iscomplex', 'iscomplexobj', 
'isfinite', 'isfortran', 'isin', 'isinf', 'isnan', 'isnat', 'isneginf', 'isposinf', 'isreal', 
'isrealobj', 'isscalar', 'issctype', 'issubclass_', 'issubdtype', 'issubsctype', 'iterable', 
'ix_', 'kaiser', 'kron', 'lcm', 'ldexp', 'left_shift', 'less', 'less_equal', 'lexsort', 'lib', 
'linalg', 'linspace', 'little_endian', 'load', 'loadtxt', 'log', 'log10', 'log1p', 'log2', 
'logaddexp', 'logaddexp2', 'logical_and', 'logical_not', 'logical_or', 'logical_xor', 'logspace', 
'longcomplex', 'longdouble', 'longfloat', 'longlong', 'lookfor', 'ma', 'mask_indices', 'mat', 
'math', 'matmul', 'matrix', 'matrixlib', 'max', 'maximum', 'maximum_sctype', 'may_share_memory', 
'mean', 'median', 'memmap', 'meshgrid', 'mgrid', 'min', 'min_scalar_type', 'minimum', 'mintypecode', 
'mod', 'modf', 'moveaxis', 'msort', 'multiply', 'nan', 'nan_to_num', 'nanargmax', 'nanargmin', 
'nancumprod', 'nancumsum', 'nanmax', 'nanmean', 'nanmedian', 'nanmin', 'nanpercentile', 'nanprod', 
'nanquantile', 'nanstd', 'nansum', 'nanvar', 'nbytes', 'ndarray', 'ndenumerate', 'ndim', 'ndindex', 
'nditer', 'negative', 'nested_iters', 'newaxis', 'nextafter', 'nonzero', 'not_equal', 'numarray', 
'number', 'obj2sctype', 'object0', 'object_', 'ogrid', 'oldnumeric', 'ones', 'ones_like', 'os', 
'outer', 'packbits', 'pad', 'partition', 'percentile', 'pi', 'piecewise', 'place', 'poly', 
'poly1d', 'polyadd', 'polyder', 'polydiv', 'polyfit', 'polyint', 'polymul', 'polynomial', 'polysub', 
'polyval', 'positive', 'power', 'printoptions', 'prod', 'product', 'promote_types', 'ptp', 'put', 
'put_along_axis', 'putmask', 'quantile', 'r_', 'rad2deg', 'radians', 'random', 'ravel', 
'ravel_multi_index', 'real', 'real_if_close', 'rec', 'recarray', 'recfromcsv', 'recfromtxt', 
'reciprocal', 'record', 'remainder', 'repeat', 'require', 'reshape', 'resize', 'result_type', 
'right_shift', 'rint', 'roll', 'rollaxis', 'roots', 'rot90', 'round', 'round_', 'row_stack', 's_', 
'safe_eval', 'save', 'savetxt', 'savez', 'savez_compressed', 'sctype2char', 'sctypeDict', 'sctypes', 
'searchsorted', 'select', 'set_numeric_ops', 'set_printoptions', 'set_string_function', 'setbufsize', 
'setdiff1d', 'seterr', 'seterrcall', 'seterrobj', 'setxor1d', 'shape', 'shares_memory', 'short', 
'show_config', 'sign', 'signbit', 'signedinteger', 'sin', 'sinc', 'single', 'singlecomplex', 
'sinh', 'size', 'sometrue', 'sort', 'sort_complex', 'source', 'spacing', 'split', 'sqrt', 'square', 
'squeeze', 'stack', 'std', 'str0', 'str_', 'string_', 'subtract', 'sum', 'swapaxes', 'sys', 'take', 
'take_along_axis', 'tan', 'tanh', 'tensordot', 'test', 'testing', 'tile', 'timedelta64', 'trace', 
'tracemalloc_domain', 'transpose', 'trapz', 'tri', 'tril', 'tril_indices', 'tril_indices_from', 
'trim_zeros', 'triu', 'triu_indices', 'triu_indices_from', 'true_divide', 'trunc', 'typecodes', 
'typename', 'ubyte', 'ufunc', 'uint', 'uint0', 'uint16', 'uint32', 'uint64', 'uint8', 'uintc', 
'uintp', 'ulonglong', 'unicode_', 'union1d', 'unique', 'unpackbits', 'unravel_index', 'unsignedinteger', 
'unwrap', 'use_hugepage', 'ushort', 'vander', 'var', 'vdot', 'vectorize', 'version', 'void', 'void0', 
'vsplit', 'vstack', 'warnings', 'where', 'who', 'zeros', 'zeros_like']
'''

* 출력 화면

 

 출처

 

 

+ 강의 교재

'AI Bootcamp > Numpy' 카테고리의 다른 글

[Numpy] 1일차_1차열 배열 추가 및 삭제  (0) 2022.04.19
[Numpy] 1일차_1차원 배열 생성  (0) 2022.04.19

FLASK 웹 사이트 만들기 2

 

 

FLASK 웹 사이트 만들기 2

 

1. notion 접속

https://www.notion.so/

2. 새 페이지 생성 후 html 포맷 입력 → 우측 상단 ... 클릭 → Export 클릭

 

3. Export format - HTML → Export 버튼 마우스로 클릭

4. 임의의 경로에 폴더 생성하여 압축 풀기

5. hello로 html 파일 이름 변경

6. html 편집기 다운로드

https://atom.io/

https://notepad-plus-plus.org/downloads/

※ 그냥 구름 IDE 이용해도 됨

https://ide.goorm.io/

7. 전체선택 Ctrl + A → 복사 Ctrl + C

8. 구름 IDE → 프로젝트 hello.html에 전체 복사 → 맨 끝에 코드에 <a> 태그 추가하여 수정 → Ctrl + S로 저장

<a href="/apply">집 등록하기</a>
<a href="/list">등록한 집 목록보기</a>

9. Notion에서 페이지 추가 1

10. Notion에서 페이지 추가 2

11. 집 등록하기 & 리스트 보여주기 Export

12. Export format - HTML → Export 버튼 마우스로 클릭

13. 임의의 경로에 생성한 폴더에 압축 풀기

14. list.html / apply.html로 html 파일 이름 변경

15. html 편집기에서 (list.html / apply.html로 html)을 각각 열어서 전체선택 Ctrl + A → 복사 Ctrl + C

16. 구름 IDE에 동일한 이름의 html 파일 생성하여 전체 복사한 html 코드 붙여넣기

 

 

 출처

 

* FLASK 이미지 : https://ko.wikipedia.org/wiki/%ED%94%8C%EB%9D%BC%EC%8A%A4%ED%81%AC_(%EC%9B%B9_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC)

클론코딩 강의  : https://www.youtube.com/watch?v=EPN_NAQsk7M&list=PLqIc89sXpwUBmr0Z282fm9JurDDYBE55r&index=3 

 

'Python > FLASK' 카테고리의 다른 글

[FLASK] 웹 사이트 만들기 1  (0) 2022.04.11

FLASK 웹 사이트 만들기 1

 

 

FLASK 웹 사이트 만들기 1

 

1. 구름 IDE 접속

https://ide.goorm.io/

 

2. 컨테이너 생성

Name : BUILD
Description : house build Web Site
Region : Seoul(KOR)
Visibility : Private
Template : Default Template
Deployment : Not used
Stack : Flask

3. 컨테이너 생성 완료 화면 → Run Container 버튼 마우스로 클릭

4. PROJECT → Running URL and Port

5. Propety → Running URL and Port → Port 80 Delete

6. URL & PORT 입력 후 Register 버튼 마우스로 클릭

URL : https:// housetest
PORT : 5000

7. application.py default code

from flask import Flask
import sys
application = Flask(__name__)


@application.route("/")
def hello():
    return "Hello goorm!"


if __name__ == "__main__":
    application.run(host='0.0.0.0', port=int(sys.argv[1]))

8. templates 폴더 생성 hello.html 생성

<h1>
    hello
</h1>

9. application.py update code

from flask import Flask, render_template
import sys
application = Flask(__name__)


@application.route("/")
def hello():
    return render_template("hello.html")


if __name__ == "__main__":
    application.run(host='0.0.0.0')

10. TERMINAL → python3 application.py 실행 확인

* local일 경우 - http://0.0.0.0:5000/ 링크 클릭
* goorm IDE일 경우 - 11~12번 참고

11. PROJECT → Running URL and Port

12. Propety → Running URL and Port → Registed URL and Port → URL 링크 바로가기 버튼 마우스로 클릭

URL - https://housetest.run.goorm.io

13. 홈페이지 확인

 

 출처

 

* FLASK 이미지 : https://ko.wikipedia.org/wiki/%ED%94%8C%EB%9D%BC%EC%8A%A4%ED%81%AC_(%EC%9B%B9_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC)

클론코딩 강의  : https://www.youtube.com/watch?v=hsfibrhGFiM&list=PLqIc89sXpwUBmr0Z282fm9JurDDYBE55r&index=2 

 

'Python > FLASK' 카테고리의 다른 글

[FLASK] 웹 사이트 만들기 2  (0) 2022.04.11

설치

 

 

 Python 설치

 

1. python 설치 진행 - python 사이트 접속

https://www.python.org/

https://www.python.org/downloads/release/python-381/

 

Python Release Python 3.8.1

The official home of the Python Programming Language

www.python.org

 

 

2. python 3.8.1 Windows x86-64 executable installer 다운로드

 

3. python 설치 파일 다운로드 완료되면 실행

 

4. 아래 2가지 체크 후 Customize installation 마우스로 클릭 

- Install launcher for all users (recommended)

- Add Python 3.8 to PATH

5. Next 마우스로 클릭

6. Customize install location 변경 -> Install 버튼 마우스로 클릭

C:\Users\UserName\AppData\Local\Programs\Python\Python38
C:\Python38

7. Python 3.8.1 설치 진행중인 화면 

8. Python 3.8.1 설치 완료

9. 시스템 정보 → 고급 시스템 설정

★ 시스템 정보 단축키 : Windows Key + Pause Key 

10.  시스템 속성 → 고급 → 환경 변수(N)...

11. 환경 변수 → 사용자 변수 → 편집

12. 환경 변수 편집에서 아래 2개의 경로 확인

C:\Python38\Scripts\
C:\Python38\

13. Python 3.8.1 설치된 경로에 정상 설치 여부 확인

 

 PyCharm 설치 및 설정

 

0. Pycharm 설치

https://www.jetbrains.com/pycharm/

https://inpages.tistory.com/99

설치가 되어 있다는 가정하에 설정

1.  File → New Project...

 

2. Previously configured interpreter → [...] 마우스로 클릭

3. Add Python Interpreter → System Interpreter → [...] 마우스로 클릭 → C:\Python38\python.exe 경로 설정 → OK 버튼 마우스로 클릭 → OK 버튼 마우스로 클릭

1. Add Python Interpreter → System Interpreter
2. Add Python Interpreter → [...] 마우스로 클릭 
3. Select Python Interpreter → C:\Python38\python.exe 경로 설정 
4. Select Python Interpreter OK 버튼 마우스로 클릭 
5.  Add Python Interpreter  OK 버튼 마우스로 클릭

4. Location → 우측 폴더 모양 마우스로 클릭

5. Select Base Directory - 경로를 C:\pythonstudy로 설정 후 OK 버튼 마우스로 클릭

6. 프로젝트 명은 python으로 입력 후 Create 버튼 마우스로 클릭

7. 프로젝트 생성 완료

 

 출처

 

 

+ 강의 교재

183. Customers Who Never Order

 

 문제 설명

 

Create table If Not Exists Customers (id int, name varchar(255))
Create table If Not Exists Orders (id int, customerId int)
Truncate table Customers
insert into Customers (id, name) values ('1', 'Joe')
insert into Customers (id, name) values ('2', 'Henry')
insert into Customers (id, name) values ('3', 'Sam')
insert into Customers (id, name) values ('4', 'Max')
Truncate table Orders
insert into Orders (id, customerId) values ('1', '3')
insert into Orders (id, customerId) values ('2', '1')

 

Table: Customers

+-------------+------+
| Column Name | Type |
+-------------+------+
| id          | int  |
| customerId  | int  |
+-------------+------+
id is the primary key column for this table.
customerId is a foreign key of the ID from the Customers table.
Each row of this table indicates the ID of an order and the ID of the customer who ordered it.

 

id는 이 테이블의 프라이머리 키열입니다.
customerId는 [Customers]테이블에 있는 ID의 외부 키입니다.
이 표의 각 행은 주문의 ID와 주문 고객의 ID를 나타냅니다.

 

Write an SQL query to report all customers who never order anything.

Return the result table in any order.

The query result format is in the following example.

SQL 쿼리를 작성하여 아무것도 주문하지 않은 모든 고객을 보고합니다.
임의의 순서로 결과 테이블을 반환합니다.
쿼리 결과 형식은 다음과 같습니다.

 

 입출력 예

 

Example 1:

Input: 
Customers table:
+----+-------+
| id | name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+
Orders table:
+----+------------+
| id | customerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+
Output: 
+-----------+
| Customers |
+-----------+
| Henry     |
| Max       |
+-----------+

 

 Oracle Query

 

select name as customers
from customers
where id not in
(select customerid from orders);

서브쿼리 (select customerid from orders)에서 customerid 결과가 아닌 id일 때, 컬럼 name 출력

* 참고 링크 : https://leetcode.com/problems/customers-who-never-order/discuss/1080196/Oracle-easiest-solution

https://stand-atop.tistory.com/144

 출처

 

https://leetcode.com/problems/customers-who-never-order/

627. Swap Salary

 

 문제 설명

 

Table: Salary

+----------------+-------------+
| Column Name | Type          |
+----------------+-------------+
| id                 | int             |
| name            | varchar       |
| sex               | ENUM        |
| salary            | int             |
+----------------+-------------+

id is the primary key for this table.
The sex column is ENUM value of type ('m', 'f').
The table contains information about an employee.

id는 이 테이블의 프라이머리 키입니다.
Sex 열은 유형의 ENUM 값('m', 'f')입니다.
표에는 직원에 대한 정보가 포함되어 있습니다.

 

Write an SQL query to swap all 'f' and 'm' values (i.e., change all 'f' values to 'm' and vice versa) with a single update statement and no intermediate temporary tables.

Note that you must write a single update statement, do not write any select statement for this problem.

The query result format is in the following example.

SQL 쿼리를 작성하여 모든 'f' 및 'm' 값을 단일 업데이트 문으로 스왑하고 중간 임시 테이블을 사용하지 않습니다(즉, 모든 'f' 값을 'm'으로 변경).

이 문제에 대한 select 문을 작성하지 말고 단일 업데이트 문을 작성해야 합니다.

쿼리 결과 형식은 다음과 같습니다.

 

 입출력 예

 

Example 1:

Input: 
Salary table:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1  | A    | m   | 2500   |
| 2  | B    | f   | 1500   |
| 3  | C    | m   | 5500   |
| 4  | D    | f   | 500    |
+----+------+-----+--------+
Output: 
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1  | A    | f   | 2500   |
| 2  | B    | m   | 1500   |
| 3  | C    | f   | 5500   |
| 4  | D    | m   | 500    |
+----+------+-----+--------+
Explanation: 
(1, A) and (3, C) were changed from 'm' to 'f'.
(2, B) and (4, D) were changed from 'f' to 'm'.
 

 

 

 Oracle Query

 

UPDATE salary s
SET sex = 
CASE 
  WHEN sex='m' THEN 'f'
  WHEN sex='f' THEN 'm'
END;
update salary 
set sex = decode(sex,'m','f','m');

 

DECODE문 - ORACLE에서만 존재하는 함수

DECODE(컬럼명, 조건, True 결과값, False 결과값)

https://sseoui.tistory.com/110

* 참고 링크 : https://leetcode.com/problems/swap-salary/discuss/504204/Oracle-solution

https://leetcode.com/problems/swap-salary/discuss/708246/Using-Decode

 

 출처

 

https://leetcode.com/problems/swap-salary/

java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생

 

org.apache.catalina.startup.HostConfig deployDescriptor
심각: 배치 descriptor [C:\springstudy\apache-tomcat-8.5.73\conf\Catalina\localhost\app.xml]을(를) 배치하는 중 오류 발생
java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생

 

라이브러리 충돌로 인한 에러

 

 해결방법

 

1. [Project] - [Clean]

2. Tomcat v8.5 Server at localhost → Modules → 실행되고 있는 것 선택 후 Remove

3. Servers → Tomcat v8.5 Server at localhost 마우스로 우클릭 → Clean

4. 해당 Project 마우스로 우클릭 → [Maven] → Update Project... → 해당 프로젝트 체크 후 OK 버튼 마우스로 클릭

1. 서버 클린 : Servers > Tomcat > Clean & Clean Tomcat Work Directory
2. 프로젝트 클린 : Menu > Project > Clean
3. 메이븐 업데이트 : Project Explorer > 프로젝트 우클릭 > Maven > Update Project

 

 

4가지 방법 해봐도 안됨..

 

3월 21, 2022 4:19:32 오후 org.apache.catalina.startup.HostConfig deployDescriptor 심각: 배치 descriptor [C:\springstudy\apache-tomcat-8.5.73\conf\Catalina\localhost\app.xml]을(를) 배치하는 중 오류 발생 java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:673)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Caused by: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.StandardRoot@5b39f964]을(를) 시작하지 못했습니다.

at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4880)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5018)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
... 9 more

Caused by: java.lang.IllegalArgumentException: 지정된 주요 리소스셋 [C:\springstudy\apache-tomcat-8.5.73\webapps\app]은(는) 유효하지 않습니다.

at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:747)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:705)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 13 more

 

3월 21, 2022 4:40:09 오후 org.apache.catalina.core.StandardContext listenerStop
심각: 클래스 [org.springframework.web.context.ContextLoaderListener]의 인스턴스인 리스너에게 contextDestroyed 이벤트를 전송하는 중 예외 발생 java.lang.IllegalStateException: java.io.FileNotFoundException: C:\springstudy\apache-tomcat-8.5.73\webapps\spring16_mvc16_@ExceptionHandler\WEB-INF\lib\aspectjrt-1.6.10.jar (지정된 경로를 찾을 수 없습니다)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry
(AbstractSingleArchiveResourceSet.java:100)
at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource
(AbstractArchiveResourceSet.java:257) at org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:280)
at org.apache.catalina.webresources.Cache.getResource(Cache.java:62)
at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:215)
at org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:224)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2365)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:876)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1379)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1223)
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:117)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4811)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:844)
at org.apache.catalina.startup.HostConfig.undeploy(HostConfig.java:1458)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1383)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1646)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1170)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren
(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren
(ContainerBase.java:1400)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1368)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.FileNotFoundException:
C:\springstudy\apache-tomcat-8.5.73\webapps\spring16_mvc16_@ExceptionHandler\WEB-INF\lib\aspectjrt-1.6.10.jar (지정된 경로를 찾을 수 없습니다)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:226)
at java.util.zip.ZipFile.<init>(ZipFile.java:155)
at java.util.jar.JarFile.<init>(JarFile.java:167)
at java.util.jar.JarFile.<init>(JarFile.java:131)
at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:202)
at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:187)
at org.apache.catalina.webresources.AbstractArchiveResourceSet.openJarFile
(AbstractArchiveResourceSet.java:308)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry
(AbstractSingleArchiveResourceSet.java:96)
... 24 more

 

 

경고: 호스트 appBase 내의 docBase [C:\springstudy\apache-tomcat-8.5.73\webapps\spring16_mvc13_mybatis]이(가) 지정되었으나, 이는 무시될 것입니다. 3월 21, 2022 5:22:06 오후 org.apache.catalina.core.ContainerBase addChildInternal 심각: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.StandardRoot@675b709e]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4880) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5018) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:673) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: 지정된 주요 리소스셋 [C:\springstudy\apache-tomcat-8.5.73\webapps\app]은(는) 유효하지 않습니다. at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:747) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:705) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 13 more 3월 21, 2022 5:22:06 오후 org.apache.catalina.startup.HostConfig deployDescriptor 심각: 배치 descriptor [C:\springstudy\apache-tomcat-8.5.73\conf\Catalina\localhost\app.xml]을(를) 배치하는 중 오류 발생 java.lang.IllegalStateException: 자식 컨테이너를 시작하는 중 오류 발생 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:673) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.catalina.LifecycleException: 구성요소 [org.apache.catalina.webresources.StandardRoot@675b709e]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4880) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5018) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) ... 9 more Caused by: java.lang.IllegalArgumentException: 지정된 주요 리소스셋 [C:\springstudy\apache-tomcat-8.5.73\webapps\app]은(는) 유효하지 않습니다. at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:747) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:705) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 13 more
3월 21, 2022 5:22:32 오후 org.apache.catalina.core.StandardContext listenerStart 심각: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생 org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx] Offending resource: ServletContext resource [/WEB-INF/spring/root-context.xml] at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:118) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:110) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:301) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1432) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1419) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:172) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:142) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:94) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:126) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:614) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:514) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4763) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5232) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1177) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1925) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 3월 21, 2022 5:22:32 오후 org.apache.catalina.core.StandardContext startInternal 심각: 하나 이상의 리스너들이 시작하지 못했습니다. 상세 내역은 적절한 컨테이너 로그 파일에서 찾을 수 있습니다. 3월 21, 2022 5:22:32 오후 org.apache.catalina.core.StandardContext startInternal 심각: 이전 오류들로 인해 컨텍스트 [/spring16_mvc13_mybatis]의 시작이 실패했습니다. 3월 21, 2022 5:22:32 오후 org.apache.catalina.core.ApplicationContext log 정보: Closing Spring root WebApplicationContext INFO : org.springframework.web.context.support.XmlWebApplicationContext - Closing Root WebApplicationContext: startup date [Mon Mar 21 17:22:26 KST 2022]; root of context hierarchy 3월 21, 2022 5:22:32 오후 org.apache.catalina.core.StandardContext listenerStop 심각: 클래스 [org.springframework.web.context.ContextLoaderListener]의 인스턴스인 리스너에게 contextDestroyed 이벤트를 전송하는 중 예외 발생 java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:164) at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1034) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1009) at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:958) at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:583) at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:116) at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4811) at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5467) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1177) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1925) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

 

 

 출처

 

https://zerowincoding.tistory.com/entry/%EC%9E%90%EC%8B%9D-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%A5%BC-%EC%8B%9C%EC%9E%91%EC%A4%91-%EC%8B%A4%ED%8C%A8%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4

maven update

https://velog.io/@kchm0224/%EC%8A%A4%ED%94%84%EB%A7%81-%EA%B5%AC%EB%8F%99-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0

https://blog.studioego.info/3388

https://how-can-i.tistory.com/3

https://repacat.tistory.com/30

https://zelkun.tistory.com/entry/eclipse-javautilconcurrentExecutionException-orgapachecatalinaLifecycleException

+ 강의 교재

+ Recent posts