전체 글
-
[Linux] tail 멈춤 현상 일어날 때 해결 방법2024.05.30
-
[DBeaver] 테이블 DDL 쿼리문에 COMMENT(주석) 추가하는 방법2023.06.16
-
[2022 프로그래머스 컨퍼런스] 개발자 커리어 성장 - 끊임없는 성장과 성숙2022.11.26
-
[책리뷰/운영체제 책] 쉽게 배우는 운영체제 - 조성호2022.08.01
[Linux] tail 멈춤 현상 일어날 때 해결 방법
[Linux] tail 멈춤 현상 일어날 때 해결 방법에 대해서 소개하려고 합니다.
tail 멈추는 원인은 로그 파일이 커져서 로그 출력하는 파일이 변경되기 때문에 멈추는 경우가 있습니다. 이 경우 다른 명령어로 사용할 수 있습니다.
tail -F
tail -f 명령어와 비슷하지만 추가 기능이 있습니다. 이는 "follow and retry"를 의미합니다. 이 옵션은 파일이 이름이 변경되거나(예: 로그 로테이션) 파일이 현재 존재하지 않는 경우에도 계속해서 열려고 시도합니다. 파일이 사용 가능해지면 내용을 표시하기 시작합니다.
사용법: tail -F /path/to/file
주요 차이점:
-f: 파일 디스크립터를 따라갑니다. 파일 이름이 변경되거나 삭제되면 tail이 이를 따라가는 것을 중지합니다.
-F: 파일 이름을 따라갑니다. 파일 이름이 변경되거나 삭제되더라도 tail이 계속 열려고 시도하며 파일이 다시 사용 가능해지면 내용을 표시하기 시작합니다.
tail이 멈춘다면 tail -F를 사용하세요.
[DBeaver] 테이블 DDL 쿼리문에 COMMENT(주석) 추가하는 방법
[DBeaver] 테이블 DDL 쿼리문에 COMMENT(주석) 추가하는 방법 알려드리겠습니다.
하단 사진 처럼 테이블 들어가셔서 DDL 메뉴 탭 > 하단 아이콘 Show comments 클릭하시면 주석 보이실겁니다.
[Python] pywintypes.error : (5, 'OpenClipboard', '액세스가 거부되었습니다.') 해결 방법
[Python] pywintypes.error : (5, ‘OpenClipboard’, ‘액세스가 거부되었습니다.’) 해결 방법
안녕하세요. 파이썬 클립보드 기능을 사용하다가 이 오류가 날 때가 있습니다.
pywintypes.error : (5, ‘OpenClipboard’, ‘액세스가 거부되었습니다.’)
pywintypes.error: (5, ‘OpenClipboard’, ‘Access is denied.’)
제가 배포한 exe 파일을 다른 환경(컴퓨터)에서 구동하려 할 때
액세스가 거부된 적이 있었는데 이 오류에 대해서 해결 방법을 알려드리려고 합니다.
해결 방법
보통 이러한 경우는
from pywinauto import clipboard
text = clipboard.GetData()
상단 기재된 패키지의 GetData 함수를 사용하다가 난 오류가 있을 수 있는데 그 때
하단 패키지와 함수로 변경하면 오류는 해결 될 것입니다.
import win32clipboard
text = win32clipboard.GetClipboardData()
'프로그래밍 오류 해결' 카테고리의 다른 글
[Eclipse(이클립스), STS, 오류해결] 반응 없음, 멈춤, 복사 및 붙여넣기 오류 해결 방법 (0) | 2022.06.15 |
---|---|
[Spring, STS, 오류해결] STS 압축풀기 실패, Spring legacy project 생성 안되는 오류 해결 방법 (0) | 2022.06.07 |
[Git] Error : Repository not found. (에러 해결법) (4) | 2022.01.04 |
[2022 프로그래머스 컨퍼런스] 개발자 커리어 성장 - 끊임없는 성장과 성숙
2022 프로그래머스 컨퍼런스 정리
1] 오프닝 및 키노트 : 개발자의 커리어 성장 - 끊임없는 성장과 성숙
강의자 : 한기용(Grepp USA)
1. 커리어
1-1) 내가 못할거 같은 일, 내가 싫어할 거 같은 일을 해보기
(어떤 역할이 나에게 맞는지, 좋은지 경험하기)
1-2) 리드 역할, 매니저 역할
2. 일반적인 커리어 상장
2-1) 결과를 내는데 집중 -> 성취하는 경험(자신감 키우기)
2-1-1) 내가 맡은 업무가 큰 그림에서 어떤 그림이고 달성했을때 어떤 그림인지
2-1-2) 의사소통 능력 중요
2-1-3) 질문 많이하고 잘하기
2-1-4) 완벽 주의가 아닌 완료주의(일을 완료)
3. 나의 성장을 저해하는 요소
3-1) 나이, 남과 비교
3-2) 나에 대한 고정관념
3-3) 과거 상처
4. 인격적인 성숙
4-1) 성품을 좋은사람을 기술을 가리켜라(기술을 가르칠 수 있지만 성품은 가르칠 수 없다.)
4-2) 긍정적인 태도, 팀플레이어 기술
4-3) 주기적으로 회고하는 자세
4-4) 실수 인정하고 모르는 것을 모른다고 할 수 있는 여유
5. 시작과 꾸준함의 중요성 - 복리가 있는 일 하기
5-1) 아무 일도 안 하면 아무런 일도 발생하지 않는다.(시작이 반)
5-2) 꾸준히 매일 하다보면 발전하는게 조금 더 오랜 시간을 두고 보임
5-3) 복리가 있는 일들
5-3-1) 운동
5-3-2) 배움/학습 (호기심)
5-3-3) 네트워킹 (사람 만나기)
5-3-4) 책읽기/글쓰기
6. 네트워크의 중요성
6-1) 사람들을 만날 때 호기심 갖기 - 첫 인상에 사로잡히지 말기
6-2) 좋은 사람들과 일하는 환경의 중요성
6-3) 좋은 평판 유지하기 - (팀 플레이어, 공정한 사람, 긍정적인 사람)
6-4) 도움 요청 및 받기
7. 자신의 강점과 약점을 이해하기
7-1) 내 강점을 최대화하는 일 찾기
7-2) 단 내 강점이 약점이 되는 순간을 잘 인지하기
7-2-1) 사람들이 일반적으로 무능해질 때까지 승진
7-3) 인지는 꼭 해야하지만 꼭 변화할 필요가 있는지 판단
8. 사기 증후군 극복하기
8-1) 나보다 주변 사람들이 잘 나 보이는지 비교하는 증후군
8-2) 자신감 갖고 내 자신을 신경쓰고 결과를 내는데 포커스 하기
9. 기본기 확실하기
9-1) 코딩(프로그래밍 언어)
9-2) 테스트 작성
9-3) 기본 툴 잘 쓰기
10. 학습 능력 키우기
10-1) 호기심 기반 학습
10-2) 나만의 새로운 주제 학습 방법 만들기
10-2-1) 필요한 만큼 알기
10-3) 다른 사람 가르쳐보기
11. (우선 순위 고려) 결과 내기 집중
11-1) 컨텍스트 이해하고 성공실패 지표 확인
11-1-1) 매니지먼트 소통 중요
11-1-2) 프로젝트, 태스크 소용 시간 추정 훈련
11-2) 혼자서 잘하지 말고 영향력 갖기( 리드, 매니저)
12. 소통 잘하기
12-1) 팀으로 일하는 모드 발전
12-2) 발표 훈련 - 내가 하고 싶은 이야기 + 청중 듣고 싶은 이야기
12-3) 좋은 의사결정 원칙 만들기
13. 운영을 고려한 코드 작성
13-1) 내가 만든 코드를 남이 운영하는 경우 더 중요
13-1-1) 운영하는 팀과 소통
13-2) 반복되는 일을 자동화하기
13-2-1) 같은 일이 3번째 반복되면 자동화 시작
13-2-2) 부지런한 사람들이 경계하는 것: 노가다하는것
[책리뷰/운영체제 책] 쉽게 배우는 운영체제 - 조성호
운영체제를 요리로 비유하여 다른 운영체제 책보다 운영체제에 대해서 쉽게 설명해준 책이다.
대학 때 운영체제를 배웠지만 시험 공부를 위해서 공부한 느낌이 있어서 그 때 당시에는 잘 와 닿지 않았지만 순수하게 운영체제를 배우고 싶어서 읽은 책이여서 더욱 이해하기 쉬웠던 책이였다.
개발을 하는데 있어서 운영체제를 꼭 배워야 될까 생각했지만 이 책을 읽으면서 메모리 관점에서 다시 한번 생각하게 된 것 같아서 한 단계 나아갔다고 생각한다.
총평 : 운영체제를 요리로 비유해서 쉽게 배우고 싶은 분들에게 추천합니다.
[JavaScript/HTML] 2. SunEditor 텍스트 에디터 만들기 및 텍스트 편집기 만들기
※ 본 게시글의 소스코드는 디자인, UI, UX 에 전혀 신경쓰지 않은 점 참고해주세요.
※ 본 게시글은 서버단으로 데이터를 보내 처리하는 내용은 포함되지 않았습니다.
지난 게시글에선 SunEditor를 소개했는데 이번 게시글에선 간단하게 SunEditor 적용 후 서버로 에디터 적용한 텍스트를 웹에서 보내고 받는것을 해볼려고 한다.
아래 소스코드만 이용해도 위 사진과 같이 간단하게 텍스트 에디터를 만들 수 있다. 먼저 아래 첨부파일을 다운받아 SunEditor에 필요한 css파일과 js 파일을 자신의 프로젝트에 넣고 그에 맞춰서 소스도 수정해준다.
[html] SunEditor 소스 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width", initial-scale="1">
<!-- ********************* 자신의 프로젝트에 맞춰서 경로 수정 필요 ****************************** -->
<!-- SunEdtor css -->
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/suneditor.min.css">
<!-- SunEdtor js -->
<script type="text/javascript" src="js/suneditor.min.js"></script>
<script type="text/javascript" src="js/jquery-3.0.0.min.js"></script>
<!-- ********************* 자신의 프로젝트에 맞춰서 경로 수정 필요 ****************************** -->
<script type="text/javascript">
$(function(){
SUNEDITOR.create('content',{
font : [
'Arial',
'tahoma',
'Courier New,Courier'
],
fontSize : [
8, 10, 14, 18, 24, 36
],
colorList: [
['#ccc', '#dedede', 'OrangeRed', 'Orange', 'RoyalBlue', 'SaddleBrown'],
['SlateGray', 'BurlyWood', 'DeepPink', 'FireBrick', 'Gold', 'SeaGreen']
],
width: '100%',
maxWidth: '600px',
minWidth: 400,
height : 'auto',
imageWidth : 150,
popupDisplay: 'local',
resizingBar: false,
buttonList : [
['font', 'fontSize',
'fontColor', 'hiliteColor',
'fullScreen', 'codeView']
],
callBackSave: function (contents) {
alert(contents);
}
});
});
// 글쓰기 버튼
function saveButton(){
if(document.getElementById("title").value === "" ||
document.getElementById("title").value == null ){
alert("제목을 입력해주세요");
return false;
}
// 자신의 프로젝트에 맞춰서 경로 수정 필요
$.ajax({
url: "/board/noticeRegist",
type: "post",
data: {
title : document.getElementById("title").value,
content : $('.sun-editor-editable').html(),
} ,
// dataType: "json",
error : function(request, status, error){
alert('등록 실패');
console.dir(request);
console.dir(status);
console.dir(error);
},
success : function(result){
alert("등록이 완료되었습니다.");
// 자신의 프로젝트에 맞춰서 경로 수정 필요
location.href="/board/noticeList";
}
});
}
</script>
<title>글쓰기</title>
</head>
<body>
<div>
<div>
<table style="text-align: center; border: 1px solid #dddddd">
<thead>
<tr>
<th colspan="5">게시판 글쓰기 양식</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="5" ><input type="text" id="title" class="form-control" placeholder="글 제목" name="title" maxlength="50"></td>
</tr>
<tr>
<td colspan="5" ><textarea class="form-control" id="content" placeholder="글 내용" name="content" maxlength="2048" style="height:350px;"></textarea></td>
</tr>
</tbody>
</table>
<button id="saveButton" type="submit" class="btn btn-dark" onclick="saveButton()">글쓰기</button>
<br>
</div>
</div>
</body>
</html>
|
cs |
위 소스 간단하게 설명하면
SUNEDITOR.create('content',{
});
1. 아래 SUNEDITOR.create 함수가 에디터를 적용해주는 핵심 함수이다. textarea id (='content')를 넣어주면 에디터가 적용된다.
2. 이 함수에서 SunEditor의 다양한 기능들을 넣고 뺄 수 있다. 그 방법에 대해서는 공식 홈페이지 예제를 통해서 자세하게 알 수 있다.
$('.sun-editor-editable').html(),
위 소스 예제에서는 내용을 가져올때 위와 같이 html로 가져오는데 텍스트 에디터 적용된 모습을 개발자 도구로 보면 sun-editor-editable class로 적용된 모습을 볼 수 있어서 html를 가져와 db에 저장한 후 뷰로 불러와 아래 소스코드와 같이 넣어주면 바로 에디터가 적용된 모습을 가져올 수 있다.
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript/HTML] 1. SunEditor 텍스트 에디터 라이브러리 소개 (0) | 2022.06.24 |
---|
[JavaScript/HTML] 1. SunEditor 텍스트 에디터 라이브러리 소개
1. 소개
SunEditor는 JavaScript로 구현되어 있는 텍스트 에디터 라이브러리이다. 또한 이 라이브러리는 MIT 라이센스로 되어 있어서 수정, 배포가 자유롭고 상업적으로 마음껏 배포해도 되는 라이센스이다. 단, 저작권 표시해주어야 한다.
MIT 라이센스에 대해서 더 알고 싶으신 분은 > 링크 < 를 클릭해주세요.
또한 6월 24일 기준 현재까지도 Git 꾸준하게 오픈 소스로 업데이트 되고 있다.
2. 브라우저 지원
윈도우 10 기준으로 IE 11도 지원 종료되어서 사실 상 어느 브라우저에서도 사용 가능한 텍스트 에디터다.
3. 문서 및 공식 사이트
SunEditor 소스 및 공식 Git
SunEditor 공식 예제 : > 링크 <
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript/HTML] 2. SunEditor 텍스트 에디터 만들기 및 텍스트 편집기 만들기 (0) | 2022.06.27 |
---|
[Java] deleteQuietly 파일 삭제 및 폴더 삭제(하위 파일 및 폴더 포함)
보통 파일 삭제 및 폴더 삭제를 각각 file.delete() 함수나 cleanDirectroy() 함수로 폴더 비우고 파일 삭제하는 경우가 있는데
deleteQuietly 이 함수는 파일 및 폴더 삭제(하위 파일과 폴더를 모두 삭제하는 강력한 함수이다.
deleteQuietly 함수 내부를 살펴보자면 먼저 file.isDirectory() 함수로 폴더 체크 후
cleanDirectory() 함수로 폴더를 비워주고 delete 함수로 삭제해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public static boolean deleteQuietly(final File file) {
if (file == null) {
return false;
}
try {
if (file.isDirectory()) {
cleanDirectory(file);
}
} catch (final Exception ignored) {
// ignore
}
try {
return file.delete();
} catch (final Exception ignored) {
return false;
}
}
FileUtils.deleteQuietly(targetFile);
|
cs |
deleteQuietly 사용법
FileUtils 클래스에 속해 있어서 Apache Commons IO 라이브러리 없다면 maven 추가해줘야 된다.
https://mvnrepository.com/artifact/commons-io/commons-io
0. 위 링크로 이동해 최신 버전인 maven 태그를 복사하거나 아래 2.8 버전을 복사해서
pom.xml <dependencies> 태그 내부에 복사해준다.
1
2
3
4
5
6
7
|
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
|
cs |
1. 저장 후 Project 메뉴 > Update Maven Project 후 maven 추가한 프로젝트를 업데이트 해준다.
2. 아래 메소드처럼 파일경로 String으로 매개변수로 읽어와서 삭제하거나
FileUtils.deleteQuietly(targetFile);
deleteQuietly 함수를 이용하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 파일 삭제
* @param String
*/
public void FileDelete(String filePath) {
try {
File targetFile = new File(filePath);
FileUtils.deleteQuietly(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
}
|
cs |
'프로그래밍 > Java' 카테고리의 다른 글
[Java] BigDecimal divide 함수와 divideAndRemainder 함수 (0) | 2022.03.16 |
---|---|
[Java/자바] 람다식(람다 표현식) 과 람다식 예제 (0) | 2022.01.03 |
[Java/자바] Scanner(스캐너) 입력 / 예제 (0) | 2021.12.13 |
[Java/자바] import(임포트) 및 사용 예제 (0) | 2021.12.10 |
[Eclipse(이클립스), STS, 오류해결] 반응 없음, 멈춤, 복사 및 붙여넣기 오류 해결 방법
* 유의 : 이클립스 다크 모드를 쓰고 있지 않다면 이 글을 닫으셔도 됩니다.
위 사진과 같이 필자가 파일 이동 간 몇초 동안 반응 없음 및 멈춤 현상이 나타나고 동시에 복사 붙여넣기도 심히 느려져서 구글링으로 별의 별 방법을 다했지만 그래도 느려서 이 방법으로 해결했다.
Windows -> Preferences -> General -> Appearance 에서 다크모드를 사용중인 상태에서 Classic으로 바꾸면 오류나 멈춤 현상이 전보단 더 나아졌고 복사 붙여넣기도 빠르게 실행이 된다..
원인은 잘 모르겠지만 필자가 이 방법으로 해결해서 기록 남깁니다.
'프로그래밍 오류 해결' 카테고리의 다른 글
[Python] pywintypes.error : (5, 'OpenClipboard', '액세스가 거부되었습니다.') 해결 방법 (0) | 2023.03.01 |
---|---|
[Spring, STS, 오류해결] STS 압축풀기 실패, Spring legacy project 생성 안되는 오류 해결 방법 (0) | 2022.06.07 |
[Git] Error : Repository not found. (에러 해결법) (4) | 2022.01.04 |
[Spring, STS, 오류해결] STS 압축풀기 실패, Spring legacy project 생성 안되는 오류 해결 방법
위 사진과 같이 sts 압축 오류 나거나 sts 압축 오류가 났더라도 무시하고 sts 실행해서 Spring Tools 3 Add-On for Spring Tools 4 설치 후 spring legacy project 가 전혀 생성할 수 없는데 이를 모르고 spring legacy project 생성 할 수 없는 오류만 찾다가 근본적인 오류는 파일이 제대로 설치가 안된 오류입니다.
sts 압축 풀 때 반드시 알집으로 풀지 마시고 반디집이나 다른 압축 프로그램으로 풀어주세요! 그럼 spring legacy project 생성할 수 없는 오류도 해결됩니다.
'프로그래밍 오류 해결' 카테고리의 다른 글
[Python] pywintypes.error : (5, 'OpenClipboard', '액세스가 거부되었습니다.') 해결 방법 (0) | 2023.03.01 |
---|---|
[Eclipse(이클립스), STS, 오류해결] 반응 없음, 멈춤, 복사 및 붙여넣기 오류 해결 방법 (0) | 2022.06.15 |
[Git] Error : Repository not found. (에러 해결법) (4) | 2022.01.04 |